]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
config: Fix sysfs paths for partitions
authorMatthew Wilcox <willy@linux.intel.com>
Tue, 26 May 2015 02:51:57 +0000 (12:51 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 26 May 2015 02:51:57 +0000 (12:51 +1000)
generic/019 was failing with:

./tests/generic/019: line 65: /sys/block/pmem0p2/make-it-fail: No such file or directory

When using a partition, the file needed is located at
/sys/block/pmem0/pmem0p2/make-it-fail.

Rather than attempt to deduce whether a block device is a partition
or not, use the symlinks located in /sys/dev/block/ to find the right
location for the make-it-fail file.

Also change btrfs/088 to use the new _sysfs_dev function.

Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
common/rc
tests/btrfs/088
tests/generic/019

index c31538dec96d618ab49a673901cbe901af38e2ab..610045eab304b823d95564a279957045a7d621b3 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -3003,6 +3003,16 @@ _short_dev()
        echo `basename $(_real_dev $1)`
 }
 
+_sysfs_dev()
+{
+       local _dev=$1
+       local _maj=$(stat -c%t $_dev | tr [:lower:] [:upper:])
+       local _min=$(stat -c%T $_dev | tr [:lower:] [:upper:])
+       _maj=$(echo "ibase=16; $_maj" | bc)
+       _min=$(echo "ibase=16; $_min" | bc)
+       echo /sys/dev/block/$_maj:$_min
+}
+
 get_block_size()
 {
        if [ -z $1 ] || [ ! -d $1 ]; then
index 8206ecce24194dca8ede897e82954639b14c7f9d..ca11c253efae855a83dc324e69421799a4f3b8b0 100755 (executable)
@@ -53,19 +53,19 @@ _require_scratch
 _require_fail_make_request
 _need_to_be_root
 
-SCRATCH_BDEV=`_short_dev $SCRATCH_DEV`
+SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
 
 enable_io_failure()
 {
        echo 100 > $DEBUGFS_MNT/fail_make_request/probability
        echo 1000 > $DEBUGFS_MNT/fail_make_request/times
        echo 0 > $DEBUGFS_MNT/fail_make_request/verbose
-       echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail
+       echo 1 > $SYSFS_BDEV/make-it-fail
 }
 
 disable_io_failure()
 {
-       echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail
+       echo 0 > $SYSFS_BDEV/make-it-fail
        echo 0 > $DEBUGFS_MNT/fail_make_request/probability
        echo 0 > $DEBUGFS_MNT/fail_make_request/times
 }
index b387507159e455cae49efbe75551c6da435fe51f..ca196ca51038d3e70dfbb387c3063eff5a0f6761 100755 (executable)
@@ -41,7 +41,7 @@ _need_to_be_root
 _require_scratch
 _require_fail_make_request
 
-SCRATCH_BDEV=`_short_dev $SCRATCH_DEV`
+SYSFS_BDEV=`_sysfs_dev $SCRATCH_DEV`
 
 allow_fail_make_request()
 {
@@ -61,17 +61,15 @@ disallow_fail_make_request()
 start_fail_scratch_dev()
 {
     echo "Force SCRATCH_DEV device failure"
-    echo " echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $seqres.full
-    echo 1 > /sys/block/$SCRATCH_BDEV/make-it-fail
-
+    echo " echo 1 > $SYSFS_BDEV/make-it-fail" >> $seqres.full
+    echo 1 > $SYSFS_BDEV/make-it-fail
 }
 
 stop_fail_scratch_dev()
 {
     echo "Make SCRATCH_DEV device operable again"
-    echo " echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail" >> $seqres.full
-    echo 0 > /sys/block/$SCRATCH_BDEV/make-it-fail
-
+    echo " echo 0 > $SYSFS_BDEV/make-it-fail" >> $seqres.full
+    echo 0 > $SYSFS_BDEV/make-it-fail
 }
 
 _cleanup()