]> www.infradead.org Git - users/hch/xfstests-dev.git/commitdiff
fstests: use btrfs check repair for repairing btrfs filesystems
authorAnand Jain <anand.jain@oracle.com>
Mon, 21 Aug 2023 09:05:09 +0000 (17:05 +0800)
committerZorro Lang <zlang@kernel.org>
Sat, 16 Sep 2023 03:26:44 +0000 (11:26 +0800)
There are two repair functions: _repair_scratch_fs() and
_repair_test_fs(). As the names suggest, these functions are designed to
repair the filesystems SCRATCH_DEV and TEST_DEV, respectively. However,
these functions never called proper comamnd for the filesystem type btrfs.
This patch fixes it. Thx.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
common/rc

index 1618ded544bc9788aa06a0a78b6b558475630972..a438a8de146165e46e8a0fece2b1c88da980a932 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -1180,6 +1180,15 @@ _repair_scratch_fs()
        fi
        return $res
         ;;
+    btrfs)
+       echo "yes|$BTRFS_UTIL_PROG check --repair --force $SCRATCH_DEV"
+       yes | $BTRFS_UTIL_PROG check --repair --force $SCRATCH_DEV 2>&1
+       local res=$?
+       if [ $res -ne 0 ]; then
+               _dump_err2 "btrfs repair failed, err=$res"
+       fi
+       return $res
+       ;;
     bcachefs)
        # With bcachefs, if fsck detects any errors we consider it a bug and we
        # want the test to fail:
@@ -1232,6 +1241,13 @@ _repair_test_fs()
                        res=$?
                fi
                ;;
+       btrfs)
+       echo 'yes|$BTRFS_UTIL_PROG check --repair --force "$TEST_DEV"' > \
+                                                               /tmp.repair 2>&1
+       yes | $BTRFS_UTIL_PROG check --repair --force "$TEST_DEV" >> \
+                                                               /tmp.repair 2>&1
+               res=$?
+               ;;
        *)
                # Let's hope fsck -y suffices...
                fsck -t $FSTYP -y $TEST_DEV >$tmp.repair 2>&1