]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
btrfs/027: make use of new device get and put helper functions
authorAnand Jain <anand.jain@oracle.com>
Tue, 17 May 2016 14:32:07 +0000 (22:32 +0800)
committerEryu Guan <eguan@redhat.com>
Fri, 1 Jul 2016 15:12:49 +0000 (23:12 +0800)
Below patches added helper function to get the requested
number of devices for scratch and spare device

btrfs: add functions to get and put a device for replace target
btrfs: add functions to set and reset required number of SCRATCH_DEV_POOL

This patch makes use of them.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
tests/btrfs/027

index 9f53d0fcdd89e7899cb8405d9ef33494bb1bc1d9..8cc2e8cb826405e79ccdbba9d451ce067f0a9162 100755 (executable)
@@ -57,17 +57,22 @@ _require_command "$WIPEFS_PROG" wipefs
 run_test()
 {
        local mkfs_opts=$1
-       local saved_scratch_dev_pool=$SCRATCH_DEV_POOL
-       local replace_dev=`echo $SCRATCH_DEV_POOL | awk '{print $NF}'`
+       local ndevs=`echo $SCRATCH_DEV_POOL | wc -w`
+
+       # reserve one for replace target
+       ((ndevs--))
+
+       _scratch_dev_pool_get $ndevs
+       _spare_dev_get
 
        echo "Test $mkfs_opts" >>$seqres.full
 
-       SCRATCH_DEV_POOL=`echo $SCRATCH_DEV_POOL | sed -e "s# *$replace_dev *##"`
        _scratch_pool_mkfs $mkfs_opts >>$seqres.full 2>&1
        # make sure we created btrfs with desired options
        if [ $? -ne 0 ]; then
                echo "mkfs $mkfs_opts failed"
-               SCRATCH_DEV_POOL=$saved_scratch_dev_pool
+               _spare_dev_put
+               _scratch_dev_pool_put
                return
        fi
        _scratch_mount >>$seqres.full 2>&1
@@ -89,17 +94,19 @@ run_test()
        _scratch_mount -o degraded >>$seqres.full 2>&1
 
        # replace $missing_dev with $replace_dev and scrub it to double-check
-       $BTRFS_UTIL_PROG replace start -B -r $missing_dev_id $replace_dev \
+       $BTRFS_UTIL_PROG replace start -B -r $missing_dev_id $SPARE_DEV \
                $SCRATCH_MNT -f >>$seqres.full 2>&1
        if [ $? -ne 0 ]; then
                echo "btrfs replace failed"
-               SCRATCH_DEV_POOL=$saved_scratch_dev_pool
+               _spare_dev_put
+               _scratch_dev_pool_put
                return
        fi
        $BTRFS_UTIL_PROG scrub start -B $SCRATCH_MNT >>$seqres.full 2>&1
        if [ $? -ne 0 ]; then
                echo "btrfs scrub failed"
-               SCRATCH_DEV_POOL=$saved_scratch_dev_pool
+               _spare_dev_put
+               _scratch_dev_pool_put
                return
        fi
 
@@ -107,7 +114,8 @@ run_test()
        # we called _require_scratch_nocheck instead of _require_scratch
        # do check after test for each profile config
        _check_scratch_fs
-       SCRATCH_DEV_POOL=$saved_scratch_dev_pool
+       _spare_dev_put
+       _scratch_dev_pool_put
 }
 
 echo "Silence is golden"