]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
xfs: use -f option for xfs_repair a fs image
authorZorro Lang <zlang@redhat.com>
Mon, 21 Sep 2015 03:06:17 +0000 (13:06 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 21 Sep 2015 03:06:17 +0000 (13:06 +1000)
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>
common/rc
tests/xfs/020
tests/xfs/032

index 1e7e47b0e2d62646a12ac2ce433772ed9b60256d..64732f1d3c1293be8596e4e7e153e85f882c9c44 100644 (file)
--- 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)"
index dc305c192c13ea10c0591eb38b7fca36b94a84bd..120492d43ed6ee6975bc84855189ee1b503cc0f2 100755 (executable)
@@ -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
index a3fb89f2797f91308b7f931b8cca04df93d3b5b4..063f272cc1e4ae6413c951d2ad3226a833276b1a 100755 (executable)
@@ -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));