[PATCH V2 1/3] dax/dm: disable testing on devices that don't support dax

Jeff Moyer
2020-02-20T20:06:40Z

Move the check for dax from the individual target scripts into
_require_dm_target. This fixes up a couple of missed tests that are
failing due to the lack of dax support (such as tests requiring
dm-snapshot).

Signed-off-by: Jeff Moyer <jmoyer@redhat.com>
---
common/dmdelay | 5 -----
common/dmerror | 5 -----
common/dmflakey | 5 -----
common/dmthin | 5 -----
common/rc | 11 +++++++++++
5 files changed, 11 insertions(+), 20 deletions(-)

diff --git a/common/dmdelay b/common/dmdelay
index f1e725b9..66cac1a7 100644
--- a/common/dmdelay
+++ b/common/dmdelay
@@ -7,11 +7,6 @@
DELAY_NONE=0
DELAY_READ=1

-echo $MOUNT_OPTIONS | grep -q dax
-if [ $? -eq 0 ]; then
- _notrun "Cannot run tests with DAX on dmdelay devices"
-fi
-
_init_delay()
{
local BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
diff --git a/common/dmerror b/common/dmerror
index 426f1e96..7d12e0a1 100644
--- a/common/dmerror
+++ b/common/dmerror
@@ -4,11 +4,6 @@
#
# common functions for setting up and tearing down a dmerror device

-echo $MOUNT_OPTIONS | grep -q dax
-if [ $? -eq 0 ]; then
- _notrun "Cannot run tests with DAX on dmerror devices"
-fi
-
_dmerror_setup()
{
local dm_backing_dev=$SCRATCH_DEV
diff --git a/common/dmflakey b/common/dmflakey
index 2af3924d..b4e11ae9 100644
--- a/common/dmflakey
+++ b/common/dmflakey
@@ -8,11 +8,6 @@ FLAKEY_ALLOW_WRITES=0
FLAKEY_DROP_WRITES=1
FLAKEY_ERROR_WRITES=2

-echo $MOUNT_OPTIONS | grep -q dax
-if [ $? -eq 0 ]; then
- _notrun "Cannot run tests with DAX on dmflakey devices"
-fi
-
_init_flakey()
{
local BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
diff --git a/common/dmthin b/common/dmthin
index 7946e9a7..61dd6f89 100644
--- a/common/dmthin
+++ b/common/dmthin
@@ -21,11 +21,6 @@ DMTHIN_POOL_DEV="/dev/mapper/$DMTHIN_POOL_NAME"
DMTHIN_VOL_NAME="thin-vol"
DMTHIN_VOL_DEV="/dev/mapper/$DMTHIN_VOL_NAME"

-echo $MOUNT_OPTIONS | grep -q dax
-if [ $? -eq 0 ]; then
- _notrun "Cannot run tests with DAX on dmthin devices"
-fi
-
_dmthin_cleanup()
{
$UMOUNT_PROG $SCRATCH_MNT > /dev/null 2>&1
diff --git a/common/rc b/common/rc
index eeac1355..65cde32b 100644
--- a/common/rc
+++ b/common/rc
@@ -1874,6 +1874,17 @@ _require_dm_target()
_require_sane_bdev_flush $SCRATCH_DEV
_require_command "$DMSETUP_PROG" dmsetup

+ echo $MOUNT_OPTIONS | grep -q dax
+ if [ $? -eq 0 ]; then
+ case $target in
+ stripe|linear|log-writes)
+ ;;
+ *)
+ _notrun "Cannot run tests with DAX on $target devices."
+ ;;
+ esac
+ fi
+
modprobe dm-$target >/dev/null 2>&1

$DMSETUP_PROG targets 2>&1 | grep -q ^$target
--
2.19.1