2010-10-29 16:43:51 +00:00
#!/bin/bash
2015-09-18 15:08:28 +02:00
# Copyright (C) 2010-2015 Red Hat, Inc. All rights reserved.
2010-10-29 16:43:51 +00:00
#
# 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 11:49:46 +01:00
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
2010-10-29 16:43:51 +00:00
# no automatic extensions please
2016-02-22 16:13:42 -06:00
SKIP_WITH_LVMLOCKD = 1
2015-10-27 15:10:06 +01:00
SKIP_WITH_LVMPOLLD = 1
2010-10-29 16:43:51 +00:00
2015-10-27 15:10:06 +01:00
. lib/inittest
2015-05-09 00:59:18 +01:00
2012-03-16 13:00:05 +00:00
which mkfs.ext2 || skip
2010-10-29 16:43:51 +00:00
2011-01-05 00:16:18 +00:00
aux lvmconf "activation/snapshot_autoextend_percent = 0" \
"activation/snapshot_autoextend_threshold = 100"
2010-10-29 16:43:51 +00:00
aux prepare_dmeventd
2012-03-16 13:00:05 +00:00
aux prepare_vg 2
mntdir = " ${ PREFIX } mnt "
2010-10-29 16:43:51 +00:00
2013-06-15 11:21:03 +02:00
lvcreate -aey -L8 -n base $vg
2012-03-16 13:00:05 +00:00
mkfs.ext2 " $DM_DEV_DIR / $vg /base "
2010-10-29 16:43:51 +00:00
2013-06-15 11:21:03 +02:00
lvcreate -s -L4 -n snap $vg /base
2010-10-29 16:43:51 +00:00
lvchange --monitor y $vg /snap
2012-03-16 13:00:05 +00:00
mkdir " $mntdir "
2015-09-18 15:08:28 +02:00
# Use remount-ro to avoid logging kernel WARNING
mount -o errors = remount-ro " $DM_DEV_DIR /mapper/ $vg -snap " " $mntdir "
test $( dmsetup info -c --noheadings -o open $vg -snap) -eq 1
2015-05-04 10:18:44 +02:00
2012-03-16 13:00:05 +00:00
cat /proc/mounts | grep " $mntdir "
2015-09-18 15:08:28 +02:00
# overfill 4M snapshot (with metadata)
not dd if = /dev/zero of = " $mntdir /file $1 " bs = 1M count = 4 conv = fdatasync
2015-05-02 21:14:45 +02:00
2015-05-04 10:18:44 +02:00
# Should be nearly instant check of dmeventd for invalid snapshot.
# Wait here for umount and open_count drops to 0 as it may
# take a while to finalize umount operation (it might be already
# removed from /proc/mounts, but still opened).
for i in { 1..100} ; do
sleep .1
2015-09-18 15:08:28 +02:00
test $( dmsetup info -c --noheadings -o open $vg -snap) -eq 0 && break
2012-10-14 19:45:59 +02:00
done
2010-10-29 16:43:51 +00:00
2012-03-16 13:00:05 +00:00
cat /proc/mounts | not grep " $mntdir "
vgremove -f $vg