This patchset can be fetched from github:
https://github.com/adam900710/btrfs-progs/tree/repair_bad_dir_item_hash
This is still based on the latest stable v4.17.1 branch (which is already a
little old now)
We have report from suse bugzilla where user report latest kernel refuse
to mount the fs.
The problem turns out to be that some old kernel (around Jan 2017) has a
bug that could leads to corrupted dir item with mismatch hash.
This patchset will allow btrfs check --repair to repair such problem.
Qu Wenruo (4):
btrfs-progs: lowmem check: Add ability to repair dir item with
mismatch hash
btrfs-progs: original check: Use mismatch_dir_hash_record to record
bad dir items
btrfs-progs: original check: Add ability to repair dir item with
invalid hash
btrfs-progs: fsck-tests: Make 026-bad-dir-item-name test case to
verify if btrfs-check can also repair it
check/main.c | 121 +++++++++++++++++-
check/mode-common.c | 51 ++++++++
check/mode-common.h | 5 +-
check/mode-lowmem.c | 46 ++++++-
check/mode-lowmem.h | 1 +
check/mode-original.h | 14 ++
ctree.h | 3 +
dir-item.c | 6 +-
.../026-bad-dir-item-name/description.txt | 41 ++++++
.../fsck-tests/026-bad-dir-item-name/test.sh | 13 --
10 files changed, 272 insertions(+), 29 deletions(-)
create mode 100644 tests/fsck-tests/026-bad-dir-item-name/description.txt
delete mode 100755 tests/fsck-tests/026-bad-dir-item-name/test.sh
--
2.19.1