Replace the usage of the script xfs_check and add the relevant code to
xfstests.
This is in preparation of the planned deprecation of xfs_check.
Signed-off-by: Chandra Seetharaman <sekharan@xxxxxxxxxx>
Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx>
---
diff --git a/common/config b/common/config
index bf62996..dfbb5c2 100644
--- a/common/config
+++ b/common/config
@@ -154,7 +154,6 @@ export DF_PROG="`set_prog_path df`"
export XFS_LOGPRINT_PROG="`set_prog_path xfs_logprint`"
export XFS_REPAIR_PROG="`set_prog_path xfs_repair`"
-export XFS_CHECK_PROG="`set_prog_path xfs_check`"
export XFS_DB_PROG="`set_prog_path xfs_db`"
export XFS_GROWFS_PROG=`set_prog_path xfs_growfs`
export XFS_IO_PROG="`set_prog_path xfs_io`"
diff --git a/common/rc b/common/rc
index 09fb83f..2397795 100644
--- a/common/rc
+++ b/common/rc
@@ -166,7 +166,6 @@ case "$FSTYP" in
xfs)
[ "$XFS_LOGPRINT_PROG" = "" ] && _fatal "xfs_logprint not found"
[ "$XFS_REPAIR_PROG" = "" ] && _fatal "xfs_repair not found"
- [ "$XFS_CHECK_PROG" = "" ] && _fatal "xfs_check not found"
[ "$XFS_DB_PROG" = "" ] && _fatal "xfs_db not found"
[ "$MKFS_XFS_PROG" = "" ] && _fatal "mkfs_xfs not found"
;;
@@ -387,6 +386,34 @@ _scratch_mkfs_xfs()
return $mkfs_status
}
+# xfs_check script is planned to be deprecated. But, we want to
+# be able to invoke "xfs_check" behavior in xfstests in order to
+# maintain the current verification levels.
+_xfs_check()
+{
+ OPTS=" "
+ DBOPTS=" "
+
+ OPTIND=1
+ while getopts "b:fi:l:stvV" c
+ do
+ case $c in
+ s) OPTS=$OPTS"-s ";;
+ t) OPTS=$OPTS"-t ";;
+ v) OPTS=$OPTS"-v ";;
+ i) OPTS=$OPTS"-i "$OPTARG" ";;
+ b) OPTS=$OPTS"-b "$OPTARG" ";;
+ f) DBOPTS=$DBOPTS" -f";;
+ l) DBOPTS=$DBOPTS" -l "$OPTARG" ";;
+ V) $XFS_DB_PROG -p xfs_check -V
+ return $?
+ ;;
+ esac
+ done
+ ${XFS_DB_PROG}${DBOPTS} -F -i -p xfs_check -c "check$OPTS" $1
+ return $?
+}
+
_setup_large_ext4_fs()
{
fs_size=$1
@@ -589,7 +616,7 @@ _scratch_xfs_check()
SCRATCH_OPTIONS="-l $SCRATCH_LOGDEV"
[ "$LARGE_SCRATCH_DEV" = yes ] && \
SCRATCH_OPTIONS=$SCRATCH_OPTIONS" -t"
- $XFS_CHECK_PROG $SCRATCH_OPTIONS $* $SCRATCH_DEV
+ _xfs_check $SCRATCH_OPTIONS $* $SCRATCH_DEV
}
_scratch_xfs_repair()
@@ -1426,7 +1453,7 @@ _check_xfs_filesystem()
# option (-t) to avoid indexing the free space trees doesn't make it pass
on
# large filesystems. Avoid it.
if [ "$LARGE_SCRATCH_DEV" != yes ]; then
- $XFS_CHECK_PROG $extra_log_options $device 2>&1 |\
+ _xfs_check $extra_log_options $device 2>&1 |\
_fix_malloc >$tmp.fs_check
fi
if [ -s $tmp.fs_check ]
diff --git a/crash/xfscrash b/crash/xfscrash
index 7831d7e..579b724 100755
--- a/crash/xfscrash
+++ b/crash/xfscrash
@@ -120,11 +120,11 @@ _check()
if [ $expect -eq 0 ]
then
_echo " *** xfs_check ($LOG/check_clean.out)"
- xfs_check $TEST_DEV &> $LOG/check_clean.out || fail=1
+ _xfs_check $TEST_DEV &> $LOG/check_clean.out || fail=1
[ -s /tmp/xfs_check_clean.out ] && fail=1
else
_echo " *** xfs_check ($LOG/check_dirty.out)"
- xfs_check $TEST_DEV &> $LOG/check_dirty.out || fail=1
+ _xfs_check $TEST_DEV &> $LOG/check_dirty.out || fail=1
fi
if [ $fail -eq 0 -a $expect -eq 0 ]
diff --git a/tests/xfs/085 b/tests/xfs/085
index 27f29a3..af71b77 100755
--- a/tests/xfs/085
+++ b/tests/xfs/085
@@ -70,7 +70,7 @@ _print_logstate
# curious if FS consistent at start
if false; then
- if $XFS_CHECK_PROG $SCRATCH_DEV; then
+ if _xfs_check $SCRATCH_DEV; then
echo "*** checked ok ***"
fi
fi
diff --git a/tests/xfs/291 b/tests/xfs/291
old mode 100644
new mode 100755
index f842679..7723b9e
--- a/tests/xfs/291
+++ b/tests/xfs/291
@@ -113,7 +113,7 @@ done
_scratch_unmount
# Can xfs_repair and xfs_check cope with this monster?
_scratch_xfs_repair >> $seqres.full 2>&1 || _fail "xfs_repair failed"
-xfs_check $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_check failed"
+_xfs_check $SCRATCH_DEV >> $seqres.full 2>&1 || _fail "xfs_check failed"
# Yes they can! Now...
# Can xfs_metadump cope with this monster?
|