xfstests: support post-udev device mapper nodes
authorChristoph Hellwig <hch@lst.de>
Wed, 4 May 2011 14:28:32 +0000 (16:28 +0200)
committerChristoph Hellwig <hch@lst.de>
Wed, 4 May 2011 14:28:32 +0000 (16:28 +0200)
Because of udevs complaining device mapper now creates /dev/dm-N as the real
device nodes, and just symlinks the /dev/mapper/ names to it.  This would be
easy if everything used the /dev/mapper clear names, but most system utilities
translate them back to the /dev/mapper/ names and thus confuse various test
cases.  Add support to _is_block_dev to read symlinks, and add documentation
on how to run xfstests on device mapper volumes.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Alex Elder <aelder@sgi.com>
README.device-mapper [new file with mode: 0644]
common.rc

diff --git a/README.device-mapper b/README.device-mapper
new file mode 100644 (file)
index 0000000..4ff6812
--- /dev/null
@@ -0,0 +1,8 @@
+
+To use xfstests on device mapper always use the /dev/mapper/<name> symlinks,
+not the /dev/dm-* devices, or the symlinks created by LVM.
+
+For example:
+
+TEST_DEV=/dev/mapper/test
+SCRATCH_DEV=/dev/mapper/scratch
index 58e7318..e634fbb 100644 (file)
--- a/common.rc
+++ b/common.rc
@@ -587,7 +587,14 @@ _is_block_dev()
        exit 1
     fi
 
        exit 1
     fi
 
-    [ -b $1 ] && src/lstat64 $1 | $AWK_PROG '/Device type:/ { print $9 }'
+    _dev=$1
+    if [ -L "${_dev}" ]; then
+        _dev=`readlink -f ${_dev}`
+    fi
+
+    if [ -b "${_dev}" ]; then
+        src/lstat64 ${_dev} | $AWK_PROG '/Device type:/ { print $9 }'
+    fi
 }
 
 # Do a command, log it to $seq.full, optionally test return status
 }
 
 # Do a command, log it to $seq.full, optionally test return status