diff options
author | Heinz Mauelshagen <heinzm@redhat.com> | 2018-08-21 17:12:33 +0200 |
---|---|---|
committer | Heinz Mauelshagen <heinzm@redhat.com> | 2018-08-21 17:28:56 +0200 |
commit | 4578411633a40c8c9068ff439ef3c33cbe78d25a (patch) | |
tree | 167dd4a72e326868f4ad8747ea1c8aa071bf647f | |
parent | 8b05f1f230517aa42878aa160d94383ed0534c64 (diff) | |
download | lvm2-4578411633a40c8c9068ff439ef3c33cbe78d25a.tar.gz |
lvconvert: fix regression preventing direct striped conversion
Conversion to striped from raid0/raid0_meta is directly possible.
Fix a regression setting superfluous interim raid5_n conversion type
introduced by commit bd7cdd0b09ba123b064937fddde08daacbed7dab.
Add new test script lvconvert-raid0-striped.sh.
Resolves: rhbz1608067
-rw-r--r-- | WHATS_NEW | 1 | ||||
-rw-r--r-- | lib/metadata/raid_manip.c | 3 | ||||
-rw-r--r-- | test/shell/lvconvert-raid0-striped.sh | 25 |
3 files changed, 29 insertions, 0 deletions
@@ -1,5 +1,6 @@ Version 3.0.0 ============= + Fix lvconvert raid0/raid0_meta -> striped regression. Fix lvconvert --splitmirror for mirror type (2.02.178). Do not pair cache policy and cache metadata format. lvconvert: reject conversions on raid1 LVs with split tracked SubLVs diff --git a/lib/metadata/raid_manip.c b/lib/metadata/raid_manip.c index 931b411e1..544152781 100644 --- a/lib/metadata/raid_manip.c +++ b/lib/metadata/raid_manip.c @@ -6126,6 +6126,9 @@ static int _set_convenient_raid145610_segtype_to(const struct lv_segment *seg_fr if (seg_from->area_count == 1) seg_flag = SEG_RAID1; + else if (seg_is_any_raid0(seg_from) && segtype_is_striped(*segtype)) + ; + /* If this is any raid5 conversion request -> enforce raid5_n, because we convert from striped */ else if (((segtype_is_striped(*segtype) && !segtype_is_any_raid0(*segtype)) || segtype_is_any_raid5(*segtype)) && !segtype_is_raid5_n(*segtype)) diff --git a/test/shell/lvconvert-raid0-striped.sh b/test/shell/lvconvert-raid0-striped.sh new file mode 100644 index 000000000..4521b3449 --- /dev/null +++ b/test/shell/lvconvert-raid0-striped.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# Copyright (C) 2018 Red Hat, Inc. All rights reserved. +# +# This copyrighted material is made available to anyone wishing to use, +# modify, copy, or redistribute it subject to the terms and conditions +# of the GNU General Public License v.2. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +SKIP_WITH_LVMPOLLD=1 + +. lib/inittest + +aux have_raid 1 7 0 || skip + +aux prepare_vg 3 16 + +lvcreate -aey --type raid0 -i 3 -l3 -n $lv $vg +lvconvert -y --type striped $vg/$lv +check lv_field $vg/$lv segtype "striped" +vgremove -ff $vg |