]> sourceware.org Git - lvm2.git/commitdiff
lvconvert: reject conversions on raid1 split trackchanges LVs
authorHeinz Mauelshagen <heinzm@redhat.com>
Wed, 25 Jul 2018 23:47:39 +0000 (01:47 +0200)
committerHeinz Mauelshagen <heinzm@redhat.com>
Thu, 26 Jul 2018 00:05:54 +0000 (02:05 +0200)
Prohibit, because the tracking can't continue and
further conversions may fail with bogus error messages.

Resolves: rhbz1579072

WHATS_NEW
test/shell/lvconvert-raid1-split-trackchanges.sh
tools/lvconvert.c

index 4502b5265198c7a4c202251a9c1a410be4d0f4c0..2c5b5d3139028cc3cd5f1b673fa9c2fd10991aed 100644 (file)
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 3.0.0
 =============
+  lvconvert: reject conversions on raid1 LVs with split tracked SubLVs
   lvconvert: reject conversions on raid1 split tracked SubLVs
   Add basic creation support for VDO target.
   Never send any discard ioctl with test mode.
index e25a6321d0d89d37353c8c7850fb7c90ed575892..718c254eb70365aae4d8142bb25f46feeca58cc1 100644 (file)
@@ -27,6 +27,13 @@ vgcreate $SHARED -s 512k "$vg" "${DEVICES[@]}"
 lvcreate -y --ty raid1 -m 2 -n $lv1 -l 1 $vg
 lvconvert -y --splitmirrors 1 --trackchanges $vg/$lv1
 
+not lvconvert -y --ty linear $vg/$lv1
+not lvconvert -y --ty striped -i 3 $vg/$lv1
+not lvconvert -y --ty mirror $vg/$lv1
+not lvconvert -y --ty raid4 $vg/$lv1
+not lvconvert -y --ty raid5 $vg/$lv1
+not lvconvert -y --ty raid6 $vg/$lv1
+not lvconvert -y --ty raid10 $vg/$lv1
 not lvconvert -y --ty striped -m 1 $vg/${lv1}_rimage_2
 not lvconvert -y --ty raid1 -m 1 $vg/${lv1}_rimage_2
 not lvconvert -y --ty mirror -m 1 $vg/${lv1}_rimage_2
index a5382ef657f1546b5620081e97904b879c18b8e5..dbc5ab02fe44d65da1aca5d28a201376987349ae 100644 (file)
@@ -1161,6 +1161,12 @@ static int _raid_split_image_conversion(struct logical_volume *lv)
 {
        const char *s;
 
+       if (lv_is_raid_with_tracking(lv)) {
+               log_error("Conversion of tracking raid1 LV %s is not supported.",
+                         display_lvname(lv));
+               return 1;
+       }
+
        if (lv_is_raid_image(lv) &&
            (s = strstr(lv->name, "_rimage_"))) {
                size_t len = s - lv->name;
This page took 0.055641 seconds and 5 git commands to generate.