xfs: use -f option for xfs_repair a fs image

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>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Zorro Lang
2015-09-21 13:06:17 +10:00
committed by Dave Chinner
parent 1d295771ad
commit 505ca93422
3 changed files with 8 additions and 3 deletions
+6 -1
View File
@@ -1863,7 +1863,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"
@@ -1919,7 +1924,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)"
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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));