common/xfs: fix various problems with _supports_xfs_scrub
authorDarrick J. Wong <darrick.wong@oracle.com>
Thu, 22 Mar 2018 02:48:09 +0000 (19:48 -0700)
committerEryu Guan <guaneryu@gmail.com>
Fri, 23 Mar 2018 04:44:02 +0000 (12:44 +0800)
The _supports_xfs_scrub helper is called with a mountpoint (a working
mountpoint is required for scrub) and a block device (used to detect
norecovery mounts).  If either of these conditions aren't satisfied we
should return failure status to the caller, not unilaterally decide to
bail out of the test.  In particular, the -b test doesn't work if the
fs has already shutdown on us.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/xfs

index 56531f914cdbed89cf6ebaeaded4314b73e969e4..3169f8710dd706c9df3b0376280db5200c252bc8 100644 (file)
@@ -305,9 +305,13 @@ _supports_xfs_scrub()
        local mountpoint="$1"
        local device="$2"
 
-       if [ ! -b "$device" ] || [ ! -e "$mountpoint" ]; then
+       if [ -z "$device" ] || [ -z "$mountpoint" ]; then
                echo "Usage: _supports_xfs_scrub mountpoint device"
-               exit 1
+               return 1
+       fi
+
+       if [ ! -b "$device" ] || [ ! -e "$mountpoint" ]; then
+               return 1
        fi
 
        test "$FSTYP" = "xfs" || return 1