@@ -1841,7 +1841,12 @@ _check_xfs_filesystem()
fi
extra_mount_options=""
+ extra_options=""
device=$1
+ if [ -f $device ];then
+ extra_options="-f"
+ fi
+
if [ "$2" != "none" ]; then
extra_log_options="-l$2"
extra_mount_options="-ologdev=$2"
@@ -1897,7 +1902,7 @@ _check_xfs_filesystem()
ok=0
fi
- $XFS_REPAIR_PROG -n $extra_log_options $extra_rt_options $device >$tmp.repair 2>&1
+ $XFS_REPAIR_PROG -n $extra_options $extra_log_options $extra_rt_options $device >$tmp.repair 2>&1
if [ $? -ne 0 ]
then
echo "_check_xfs_filesystem: filesystem on $device is inconsistent (r) (see $seqres.full)"
@@ -55,7 +55,7 @@ fsfile=$TEST_DIR/fsfile.$seq
rm -f $fsfile
$MKFS_PROG -t xfs -d size=60t,file,name=$fsfile >/dev/null
-$XFS_REPAIR_PROG -o ag_stride=32 -t 1 $fsfile >/dev/null 2>&1
+$XFS_REPAIR_PROG -f -o ag_stride=32 -t 1 $fsfile >/dev/null 2>&1
status=$?
exit
@@ -69,7 +69,7 @@ while [ $SECTORSIZE -le $PAGESIZE ]; do
$XFS_COPY_PROG -d $SCRATCH_DEV $IMGFILE >> $seqres.full 2>&1 || \
_fail "Copy failed for Sector size $SECTORSIZE Block size $BLOCKSIZE"
# Must use "-n" to get exit code; without it xfs_repair always returns 0
- $XFS_REPAIR_PROG -n $IMGFILE >> $seqres.full 2>&1 || \
+ $XFS_REPAIR_PROG -n -f $IMGFILE >> $seqres.full 2>&1 || \
_fail "Copy corrupted for Sector size $SECTORSIZE Block size $BLOCKSIZE"
BLOCKSIZE=$(($BLOCKSIZE * 2));
xfs/020 need -f option, or it'll be fail on 4k sector device. Add -f option for xfs/032 for safe and better. There're some cases use _check_xfs_filesystem(), or others function which call this function to check a regular file. That's will fail when the regular file on a 4k sector device. For example xfs/250. So I change _check_xfs_filesystem(), add -f option to xfs_repair, when the $device is a file. Signed-off-by: Zorro Lang <zlang@redhat.com> --- common/rc | 7 ++++++- tests/xfs/020 | 2 +- tests/xfs/032 | 2 +- 3 files changed, 8 insertions(+), 3 deletions(-)