[PATCH 2/2] Fix warning of "Usage: _is_block_dev dev"

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



From: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>

_is_block_dev() will show above warning when "$dev" is not exist.
It happened when the program check $TEST_DEV with blank $SCRATCH_DEV
which is optional.

Changelog v1->v2:
 Rewrite _is_block_dev() to make caller code simple.
 Suggested by: Dave Chinner <david@xxxxxxxxxxxxx>

Signed-off-by: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>
---
 common/rc | 63 ++++++++++++++++++++++++++++++++++-----------------------------
 1 file changed, 34 insertions(+), 29 deletions(-)

diff --git a/common/rc b/common/rc
index 76522d4..c5f6953 100644
--- a/common/rc
+++ b/common/rc
@@ -947,12 +947,11 @@ _fs_options()
 
 # returns device number if a file is a block device
 #
-_is_block_dev()
+_dev_type()
 {
     if [ $# -ne 1 ]
     then
-	echo "Usage: _is_block_dev dev" 1>&2
-	exit 1
+        return
     fi
 
     _dev=$1
@@ -965,6 +964,25 @@ _is_block_dev()
     fi
 }
 
+_is_block_dev()
+{
+    _dev_type=`_dev_type "$1"`
+    if [ -z "$_dev_type" ]; then
+	return 1
+    fi
+
+    _not_same_dev_type=`_dev_type "$2"`
+    if [ -z "$_not_same_dev_type" ]; then
+	return 0
+    fi
+
+    if [ "$_dev_type" = "$_not_same_dev_type" ]; then
+	return 1
+    fi
+
+    return 0
+}
+
 # Do a command, log it to $seqres.full, optionally test return status
 # and die if command fails. If called with one argument _do executes the
 # command, logs it, and returns its exit status. With two arguments _do
@@ -1095,19 +1113,14 @@ _require_scratch_nocheck()
 		fi
 		;;
 	*)
-		 if [ -z "$SCRATCH_DEV" -o "`_is_block_dev $SCRATCH_DEV`" = "" ]
-		 then
-		     _notrun "this test requires a valid \$SCRATCH_DEV"
-		 fi
-		 if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ]
-		 then
-		     _notrun "this test requires a valid \$SCRATCH_DEV"
-		 fi
+		if ! _is_block_dev "$SCRATCH_DEV" "$TEST_DEV"; then
+		    _notrun "this test requires a valid \$SCRATCH_DEV"
+		fi
 		if [ ! -d "$SCRATCH_MNT" ]
 		then
-		     _notrun "this test requires a valid \$SCRATCH_MNT"
+		    _notrun "this test requires a valid \$SCRATCH_MNT"
 		fi
-		 ;;
+		;;
     esac
 
     # mounted?
@@ -1167,19 +1180,14 @@ _require_test()
 		fi
 		;;
 	*)
-		 if [ -z "$TEST_DEV" -o "`_is_block_dev $TEST_DEV`" = "" ]
-		 then
-		     _notrun "this test requires a valid \$TEST_DEV"
-		 fi
-		 if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ]
-		 then
-		     _notrun "this test requires a valid \$TEST_DEV"
-		 fi
+		if ! _is_block_dev "$TEST_DEV" "$SCRATCH_DEV"; then
+		    _notrun "this test requires a valid \$TEST_DEV"
+		fi
 		if [ ! -d "$TEST_DIR" ]
 		then
-		     _notrun "this test requires a valid \$TEST_DIR"
+		    _notrun "this test requires a valid \$TEST_DIR"
 		fi
-		 ;;
+		;;
     esac
 
     # mounted?
@@ -1288,7 +1296,7 @@ _require_block_device()
 	echo "Usage: _require_block_device <dev>" 1>&2
 	exit 1
     fi
-    if [ "`_is_block_dev $1`" == "" ]; then
+    if ! _is_block_dev "$1"; then
 	_notrun "require $1 to be valid block disk"
     fi
 }
@@ -2236,11 +2244,8 @@ _require_scratch_dev_pool()
 	esac
 
 	for i in $SCRATCH_DEV_POOL; do
-		if [ "`_is_block_dev $i`" = "" ]; then
-			_notrun "this test requires valid block disk $i"
-		fi
-		if [ "`_is_block_dev $i`" = "`_is_block_dev $TEST_DEV`" ]; then
-			_notrun "$i is part of TEST_DEV, this test requires unique disks"
+		if ! _is_block_dev "$i" "$TEST_DEV"; then
+			_notrun "$i is not valid valid block disk, or part of TEST_DEV, this test requires unique valid disks"
 		fi
 		if _mount | grep -q $i; then
 			if ! $UMOUNT_PROG $i; then
-- 
1.8.5.1

--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux