mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
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:
@@ -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
@@ -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
@@ -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));
|
||||
|
||||
Reference in New Issue
Block a user