mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
a3cfe9d9b7
Test the fix for bug 889358. RAID10 had been failing to activate when there were devices that had failed in more than one mirror set.
81 lines
1.8 KiB
Bash
81 lines
1.8 KiB
Bash
#!/bin/bash
|
|
# Copyright (C) 2012 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
. lib/test
|
|
|
|
aux target_at_least dm-raid 1 1 0 || skip
|
|
|
|
aux prepare_vg 4
|
|
|
|
lvcreate --type raid1 -m 1 -l 2 -n $lv1 $vg
|
|
lvchange -an $vg/$lv1
|
|
aux disable_dev "$dev1"
|
|
|
|
#
|
|
# Test for allowable metadata changes
|
|
#
|
|
# contiguous_ARG
|
|
lvchange -C y $vg/$lv1
|
|
lvchange -C n $vg/$lv1
|
|
|
|
# permission_ARG
|
|
lvchange -p r $vg/$lv1
|
|
lvchange -p rw $vg/$lv1
|
|
|
|
# readahead_ARG
|
|
lvchange -r none $vg/$lv1
|
|
lvchange -r auto $vg/$lv1
|
|
|
|
# persistent_ARG
|
|
lvchange -M y --minor 56 --major 253 $vg/$lv1
|
|
lvchange -M n $vg/$lv1
|
|
|
|
# addtag_ARG
|
|
# deltag_ARG
|
|
lvchange --addtag foo $vg/$lv1
|
|
lvchange --deltag foo $vg/$lv1
|
|
|
|
#
|
|
# Test for disallowed metadata changes
|
|
#
|
|
# resync_ARG
|
|
not lvchange --resync $vg/$lv1
|
|
|
|
# alloc_ARG
|
|
not lvchange --alloc anywhere $vg/$lv1
|
|
|
|
# discards_ARG
|
|
not lvchange --discards ignore $vg/$lv1
|
|
|
|
# zero_ARG
|
|
not lvchange --zero y $vg/$lv1
|
|
|
|
#
|
|
# Ensure that allowed args don't cause disallowed args to get through
|
|
#
|
|
not lvchange --resync -ay $vg/$lv1
|
|
not lvchange --resync --addtag foo $vg/$lv1
|
|
|
|
aux enable_dev "$dev1"
|
|
lvremove -ff $vg
|
|
|
|
# rhbz 889358
|
|
# Should be able to activate when RAID10
|
|
# has failed devs in different mirror sets.
|
|
if aux target_at_least dm-raid 1 3 2; then
|
|
lvcreate --type raid10 -m 1 -i 2 -l 2 -n $lv1 $vg
|
|
aux wait_for_sync $vg $lv1
|
|
lvchange -an $vg/$lv1
|
|
aux disable_dev "$dev1" "$dev3"
|
|
lvchange -ay $vg/$lv1 --partial
|
|
lvchange -an $vg/$lv1
|
|
fi
|