@@ -18,20 +18,6 @@
#
# common functions for setting up and tearing down a dmerror device
-# this test requires the device mapper error target
-#
-_dmerror_required()
-{
- _require_command "$DMSETUP_PROG" dmsetup
-
- _require_block_device $SCRATCH_DEV
- _require_sane_bdev_flush $SCRATCH_DEV
-
- modprobe dm-mod >/dev/null 2>&1
- $DMSETUP_PROG targets | grep error >/dev/null 2>&1
- [ $? -ne 0 ] && _notrun "This test requires dm error support"
-}
-
_dmerror_init()
{
local dm_backing_dev=$SCRATCH_DEV
@@ -1346,32 +1346,22 @@ _require_sane_bdev_flush()
fi
}
-# this test requires the device mapper flakey target
-#
-_require_dm_flakey()
+# this test requires a specific device mapper target
+_require_dm_target()
{
+ _target=$1
+
# require SCRATCH_DEV to be a valid block device with sane BLKFLSBUF
# behaviour
_require_block_device $SCRATCH_DEV
_require_sane_bdev_flush $SCRATCH_DEV
_require_command "$DMSETUP_PROG" dmsetup
- modprobe dm-flakey >/dev/null 2>&1
- $DMSETUP_PROG targets | grep flakey >/dev/null 2>&1
- if [ $? -ne 0 ]; then
- _notrun "This test requires dm flakey support"
- fi
-}
+ modprobe dm-$_target >/dev/null 2>&1
-_require_dm_snapshot()
-{
- _require_block_device $SCRATCH_DEV
- _require_sane_bdev_flush $SCRATCH_DEV
- _require_command "$DMSETUP_PROG" dmsetup
- modprobe dm-snapshot >/dev/null 2>&1
- $DMSETUP_PROG targets | grep -q snapshot
+ $DMSETUP_PROG targets 2>&1 | grep -q ^$_target
if [ $? -ne 0 ]; then
- _notrun "This test requires dm snapshot support"
+ _notrun "This test requires dm $_target support"
fi
}
@@ -50,7 +50,7 @@ _supported_fs btrfs
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
rm -f $seqres.full
@@ -55,7 +55,7 @@ _require_scratch
_require_cloner
_require_btrfs_fs_feature "no_holes"
_require_btrfs_mkfs_feature "no-holes"
-_require_dm_flakey
+_require_dm_target flakey
_need_to_be_root
rm -f $seqres.full
@@ -54,7 +54,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15
_supported_fs btrfs
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_need_to_be_root
BTRFS_DEBUG_TREE_PROG="`set_prog_path btrfs-debug-tree`"
@@ -52,7 +52,7 @@ _need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_cloner
_require_metadata_journaling $SCRATCH_DEV
_require_xfs_io_command "falloc"
@@ -48,7 +48,7 @@ _need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_cloner
_require_metadata_journaling $SCRATCH_DEV
@@ -46,7 +46,7 @@ _supported_fs btrfs
_supported_os Linux
_need_to_be_root
_require_scratch_dev_pool 3
-_dmerror_required
+_require_dm_target error
rm -f $seqres.full
@@ -47,7 +47,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch_dev_pool 3
_require_btrfs_dev_del_by_devid
-_dmerror_required
+_require_dm_target error
rm -f $seqres.full
@@ -52,7 +52,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -56,7 +56,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -61,7 +61,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -65,7 +65,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -54,7 +54,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -54,7 +54,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -59,7 +59,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
_require_xfs_io_command "fpunch"
@@ -55,7 +55,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -59,7 +59,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_attrs
_require_metadata_journaling $SCRATCH_DEV
@@ -55,7 +55,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -49,7 +49,7 @@ _supported_fs generic
_supported_os Linux
_require_test
_require_scratch_nocheck
-_require_dm_snapshot
+_require_dm_target snapshot
_require_command $LVM_PROG lvm
echo "Silence is golden"
@@ -41,6 +41,16 @@ _cleanup()
cleanup_dmdev
}
+cleanup_dmdev()
+{
+ # in case it's still suspended and/or mounted
+ $DMSETUP_PROG resume $lvdev >/dev/null 2>&1
+ $UMOUNT_PROG $lvdev >/dev/null 2>&1
+
+ $DMSETUP_PROG remove $node >>$seqres.full 2>&1
+ $DMSETUP_PROG mknodes >/dev/null 2>&1
+}
+
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
@@ -50,7 +60,7 @@ _supported_fs generic
_supported_os Linux
_require_scratch
_require_block_device $SCRATCH_DEV
-_require_command $DMSETUP_PROG
+_require_dm_target linear
_require_freeze
setup_dmdev()
@@ -61,16 +71,6 @@ setup_dmdev()
return $?
}
-cleanup_dmdev()
-{
- # in case it's still suspended and/or mounted
- $DMSETUP_PROG resume $lvdev >/dev/null 2>&1
- $UMOUNT_PROG $lvdev >/dev/null 2>&1
-
- $DMSETUP_PROG remove $node >>$seqres.full 2>&1
- $DMSETUP_PROG mknodes >/dev/null 2>&1
-}
-
rm -f $seqres.full
echo "Silence is golden"
@@ -53,7 +53,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -51,7 +51,7 @@ _need_to_be_root
_supported_fs generic
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
# This test was motivated by an issue found in btrfs when the btrfs no-holes
@@ -49,7 +49,7 @@ _need_to_be_root
_supported_fs generic
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -48,7 +48,7 @@ _need_to_be_root
_supported_fs generic
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -51,7 +51,7 @@ _need_to_be_root
_supported_fs generic
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -55,7 +55,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
# xfs_io is not required for this test, but it's the best way to verify
@@ -44,7 +44,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -44,7 +44,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch_nocheck
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -54,7 +54,7 @@ _supported_fs generic
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -59,7 +59,7 @@ _supported_fs btrfs xfs
_supported_os Linux
_need_to_be_root
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_attrs
_require_metadata_journaling $SCRATCH_DEV
@@ -49,7 +49,7 @@ _supported_fs xfs
_supported_os Linux
_require_scratch
-_require_dm_flakey
+_require_dm_target flakey
_require_xfs_sysfs debug/log_recovery_delay
echo "Silence is golden."
generic/085 was failing on a machine w/o devicemapper kernel support because it requires the linear target, but didn't explicitly test for it. I could have cut & pasted _require_dm_linear(), but chose to go the route of a generic helper, _require_dm_target $FOO, because some day someone will need the zero target, the error target, or who knows. Add the helper, use it in test generic/085, and convert _require_dm_flakey, _require_dm_snapshot, and _dmerror_required with this new helper. Reported-by: Angelo Dureghello <angelo.dureghello@nomovok.com> Signed-off-by: Eric Sandeen <sandeen@redhat.com> --- V2: assign _target using actual bash syntax! o_O combine dmsetup stdout & stderr for target grep modprobe the target we're looking for define cleanup_dmdev() before we _notrun, trap, and try to run it V3: Fix whitespace replace _dmerror_required in btrfs tests with _require_dm_target error -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html