2017-07-02 22:38:32 +03:00
#!/usr/bin/env bash
2011-01-31 22:52:40 +03:00
# Copyright (C) 2011 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,
2016-01-21 13:49:46 +03:00
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2011-01-31 22:52:40 +03:00
2015-10-27 17:10:06 +03:00
SKIP_WITH_CLVMD = 1
SKIP_WITH_LVMPOLLD = 1
2011-01-31 22:52:40 +03:00
2015-10-27 17:10:06 +03:00
. lib/inittest
2013-05-31 23:11:51 +04:00
2012-03-16 17:00:05 +04:00
which mkfs.ext3 || skip
2011-01-31 22:52:40 +03:00
aux prepare_pvs 2 8
var_lock = " $DM_DEV_DIR / $vg1 / $lv1 "
# keep in sync with aux configured lockingdir
2012-03-16 17:00:05 +04:00
mount_dir = "var/lock/lvm"
2021-03-23 11:48:47 +03:00
mkdir -p $mount_dir
aux lvmconf " global/locking_dir = \" $TESTDIR / $mount_dir \" "
2011-01-31 22:52:40 +03:00
cleanup_mounted_and_teardown( )
{
2012-03-16 17:00:05 +04:00
umount " $mount_dir " || true
2011-01-31 22:52:40 +03:00
aux teardown
}
2018-05-24 17:49:48 +03:00
vgcreate $SHARED $vg1 " $dev1 "
vgcreate $SHARED $vg2 " $dev2 "
2011-01-31 22:52:40 +03:00
lvcreate -l 1 -n $lv2 $vg2
vgchange -an $vg2
lvcreate -n $lv1 -l 100%FREE $vg1
2012-03-16 17:00:05 +04:00
mkfs.ext3 -b4096 -j " $var_lock "
2011-01-31 22:52:40 +03:00
trap 'cleanup_mounted_and_teardown' EXIT
2012-03-16 17:00:05 +04:00
mount -n -r " $var_lock " " $mount_dir "
2011-01-31 22:52:40 +03:00
# locking must fail on read-only filesystem
not vgchange -ay $vg2
# no-locking with --sysinit
vgchange --sysinit -ay $vg2
test -b " $DM_DEV_DIR / $vg2 / $lv2 "
vgchange --sysinit -an $vg2
test ! -b " $DM_DEV_DIR / $vg2 / $lv2 "
vgchange --ignorelockingfailure -ay $vg2
2014-02-27 02:25:30 +04:00
2018-05-24 17:49:48 +03:00
if test -n " $LVM_TEST_LVMLOCKD " ; then
vgremove --config 'global{locking_type=0}' -ff $vg2
else
2014-02-27 02:25:30 +04:00
# TODO maybe also support --ignorelockingfailure ??
vgremove --config 'global{locking_type=0}' -ff $vg2
2018-05-24 17:49:48 +03:00
fi
2014-02-27 02:25:30 +04:00
umount " $mount_dir " || true
vgremove -ff $vg1