1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

lvconvert: reject conversions on raid1 split trackchanges LVs

Prohibit, because the tracking can't continue and
further conversions may fail with bogus error messages.

Resolves: rhbz1579072
This commit is contained in:
Heinz Mauelshagen 2018-07-26 01:47:39 +02:00
parent 8b0729af0f
commit a004bb07f1
3 changed files with 14 additions and 0 deletions

View File

@ -1,5 +1,6 @@
Version 3.0.0 Version 3.0.0
============= =============
lvconvert: reject conversions on raid1 LVs with split tracked SubLVs
lvconvert: reject conversions on raid1 split tracked SubLVs lvconvert: reject conversions on raid1 split tracked SubLVs
Add basic creation support for VDO target. Add basic creation support for VDO target.
Never send any discard ioctl with test mode. Never send any discard ioctl with test mode.

View File

@ -27,6 +27,13 @@ vgcreate $SHARED -s 512k "$vg" "${DEVICES[@]}"
lvcreate -y --ty raid1 -m 2 -n $lv1 -l 1 $vg lvcreate -y --ty raid1 -m 2 -n $lv1 -l 1 $vg
lvconvert -y --splitmirrors 1 --trackchanges $vg/$lv1 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 striped -m 1 $vg/${lv1}_rimage_2
not lvconvert -y --ty raid1 -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 not lvconvert -y --ty mirror -m 1 $vg/${lv1}_rimage_2

View File

@ -1161,6 +1161,12 @@ static int _raid_split_image_conversion(struct logical_volume *lv)
{ {
const char *s; 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) && if (lv_is_raid_image(lv) &&
(s = strstr(lv->name, "_rimage_"))) { (s = strstr(lv->name, "_rimage_"))) {
size_t len = s - lv->name; size_t len = s - lv->name;