[PATCH 0/2] btrfs-progs: only allow certain commands to ignore transid errors
STALE1838d
From: Qu Wenruo <hidden>
Date: 2021-09-08 02:05:50
There is a bug in reddit (well, really the last place I expect to see
bug reports), that btrfstune -u fails due to transid error, but it also
leaves CHANGING_FSID flag to the super block, prevent btrfs-check to
properly check the fs.
The problem is, all commands in btrfs-progs can ignore transid error,
but there are only very limited usage of such ability.
Btrfstune definitely should not utilize this feature.
This patchset will introduce a new open ctree flag to explicitly
indicate we want to ignore transid errors.
Currently only there are only 3 tools using this feature:
- btrfs-check
It may fix transid error (at least for the specific test case)
- btrfs-restore
It wants to ignore all errors.
- btrfs-image
To make fsck/002 happy.
Also add a test case for btrfstune, to make sure btrfstune can rejects
the fs when an obvious transid mismatch is detected during open_ctree().
Qu Wenruo (2):
btrfs-progs: introduce OPEN_CTREE_ALLOW_TRANSID_MISMATCH flag
btrfs-progs: misc-tests: add new test case to make sure btrfstune
rejects corrupted fs
check/main.c | 3 ++-
cmds/restore.c | 3 ++-
image/main.c | 11 +++++++----
kernel-shared/ctree.h | 1 +
kernel-shared/disk-io.c | 11 +++++++++--
kernel-shared/disk-io.h | 6 ++++++
.../default_case.img | 1 +
.../049-btrfstune-transid-mismatch/test.sh | 16 ++++++++++++++++
8 files changed, 44 insertions(+), 8 deletions(-)
create mode 120000 tests/misc-tests/049-btrfstune-transid-mismatch/default_case.img
create mode 100755 tests/misc-tests/049-btrfstune-transid-mismatch/test.sh
--
2.33.0