mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
112 lines
2.2 KiB
Bash
112 lines
2.2 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Copyright (C) 2021 Seagate, 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 v2.
|
||
|
#
|
||
|
# 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 prepare_devs 6
|
||
|
get_devs
|
||
|
|
||
|
pvcreate -M2 "${DEVICES[@]}"
|
||
|
|
||
|
vgcreate --shared -M2 "$vg1" "$dev1" "$dev2" "$dev3"
|
||
|
vgcreate --shared -M2 "$vg2" "$dev4" "$dev5" "$dev6"
|
||
|
|
||
|
test_vg_thread1()
|
||
|
{
|
||
|
for i in {1..1000}
|
||
|
do
|
||
|
# Create new logic volume and deactivate it
|
||
|
lvcreate -a n --zero n -l 1 -n foo $vg1
|
||
|
|
||
|
# Set minor number
|
||
|
lvchange $vg1/foo -My --major=255 --minor=123
|
||
|
|
||
|
# Activate logic volume
|
||
|
lvchange $vg1/foo -a y
|
||
|
|
||
|
# Extend logic volume with 10%
|
||
|
lvextend -l+10 $vg1/foo
|
||
|
|
||
|
# Deactivate logic volume
|
||
|
lvchange $vg1/foo -a n
|
||
|
|
||
|
# Deactivate volume group
|
||
|
vgchange $vg1 -a n
|
||
|
|
||
|
# Activate volume group with shareable mode
|
||
|
vgchange $vg1 -a sy
|
||
|
|
||
|
# lvextend fails due to mismatched lock mode
|
||
|
not lvextend -l+10 $vg1/foo
|
||
|
|
||
|
# Promote volume group to exclusive mode
|
||
|
vgchange $vg1 -a ey
|
||
|
|
||
|
lvreduce -f -l-4 $vg1/foo
|
||
|
|
||
|
lvchange -an $vg1/foo
|
||
|
lvremove $vg1/foo
|
||
|
done
|
||
|
}
|
||
|
|
||
|
test_vg_thread2()
|
||
|
{
|
||
|
for i in {1..1000}
|
||
|
do
|
||
|
# Create new logic volume and deactivate it
|
||
|
lvcreate -a n --zero n -l 1 -n foo $vg2
|
||
|
|
||
|
# Set minor number
|
||
|
lvchange $vg2/foo -My --major=255 --minor=124
|
||
|
|
||
|
# Activate logic volume
|
||
|
lvchange $vg2/foo -a y
|
||
|
|
||
|
# Extend logic volume with 10%
|
||
|
lvextend -l+10 $vg2/foo
|
||
|
|
||
|
# Deactivate logic volume
|
||
|
lvchange $vg2/foo -a n
|
||
|
|
||
|
# Deactivate volume group
|
||
|
vgchange $vg2 -a n
|
||
|
|
||
|
# Activate volume group with shareable mode
|
||
|
vgchange $vg2 -a sy
|
||
|
|
||
|
# lvextend fails due to mismatched lock mode
|
||
|
not lvextend -l+10 $vg2/foo
|
||
|
|
||
|
# Promote volume group to exclusive mode
|
||
|
vgchange $vg2 -a ey
|
||
|
|
||
|
lvreduce -f -l-4 $vg2/foo
|
||
|
|
||
|
lvchange -an $vg2/foo
|
||
|
lvremove $vg2/foo
|
||
|
done
|
||
|
}
|
||
|
|
||
|
test_vg_thread1 &
|
||
|
WAITPID=$!
|
||
|
|
||
|
test_vg_thread2 &
|
||
|
WAITPID="$WAITPID "$!
|
||
|
|
||
|
wait $WAITPID
|
||
|
|
||
|
vgremove -ff $vg1
|
||
|
vgremove -ff $vg2
|