@@ -1927,16 +1927,24 @@ _test_inode_extsz()
_require_scratch_dev_pool()
{
local i
+ local ndevs
+
if [ -z "$SCRATCH_DEV_POOL" ]; then
_notrun "this test requires a valid \$SCRATCH_DEV_POOL"
fi
- # btrfs test case needs 2 or more scratch_dev_pool; other FS not sure
+ if [ -z "$1" ]; then
+ ndevs=2
+ else
+ ndevs=$1
+ fi
+
+ # btrfs test case needs ndevs or more scratch_dev_pool; other FS not sure
# so fail it
case $FSTYP in
btrfs)
- if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt 2 ]; then
- _notrun "btrfs and this test needs 2 or more disks in SCRATCH_DEV_POOL"
+ if [ "`echo $SCRATCH_DEV_POOL|wc -w`" -lt $ndevs ]; then
+ _notrun "btrfs and this test needs $ndevs or more disks in SCRATCH_DEV_POOL"
fi
;;
*)
@@ -1963,17 +1971,15 @@ _require_scratch_dev_pool()
done
}
-# We will check if the device is virtual (eg: loop device) since it does not
-# have the delete entry-point. Otherwise SCSI and USB devices are fine.
+# We will check if the device is deletable
_require_deletable_scratch_dev_pool()
{
local i
local x
for i in $SCRATCH_DEV_POOL; do
x=`echo $i | cut -d"/" -f 3`
- ls -l /sys/class/block/${x} | grep -q "virtual"
- if [ $? == "0" ]; then
- _notrun "$i is a virtual device which is not deletable"
+ if [ ! -f /sys/class/block/${x}/device/delete ]; then
+ _notrun "$i is a device which is not deletable"
fi
done
}
@@ -49,7 +49,7 @@ _need_to_be_root
_supported_fs btrfs
_supported_os Linux
_require_scratch
-_require_scratch_dev_pool
+_require_scratch_dev_pool 4
_require_deletable_scratch_dev_pool
_require_command $WIPEFS_PROG
@@ -62,7 +62,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15
_need_to_be_root
_supported_fs btrfs
_require_scratch
-_require_scratch_dev_pool
+_require_scratch_dev_pool 4
_require_command $BTRFS_SHOW_SUPER_PROG btrfs-show-super
rm -f $seqres.full