From: Zorro Lang Date: Mon, 21 Sep 2015 03:06:17 +0000 (+1000) Subject: xfs: use -f option for xfs_repair a fs image X-Git-Tag: v2022.05.01~2807 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=505ca934220f884509079934625f42fc5fffd712;p=xfstests-dev.git 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 Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- diff --git a/common/rc b/common/rc index 1e7e47b0..64732f1d 100644 --- a/common/rc +++ b/common/rc @@ -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)" diff --git a/tests/xfs/020 b/tests/xfs/020 index dc305c19..120492d4 100755 --- a/tests/xfs/020 +++ b/tests/xfs/020 @@ -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 diff --git a/tests/xfs/032 b/tests/xfs/032 index a3fb89f2..063f272c 100755 --- a/tests/xfs/032 +++ b/tests/xfs/032 @@ -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));