From: Su Yue <suy.fnst@xxxxxxxxxxxxxx> This patchset can be fetched from my github(based on v4.17.1): https://github.com/Damenly/btrfs-progs/tree/lowmem_extref The patchset aims to support check and repair errors about inode_extref in lowmem mode. patch[1-2] let btrfs_unlink() detect inode_extref. patch[3] fixes a minor bug in check_dir_item due to my careless long ago. patch[4] fixes a bug about inconsistent path in check_fs_roots() under repair. patch[5] fixes a corner case about traversal of inode items. patch[6] enable inode_extref repair support and remove unnecessary checks. patch[7] add a test image, it can verify above patches except patch[3]. Changelog: v2: Resend with patches in right order. Su Yue (7): btrfs-progs: adjust arguments of btrfs_lookup_inode_extref() btrfs-progs: make btrfs_unlink() lookup inode_extref btrfs-progs: lowmem check: find dir_item by di_key in check_dir_item() btrfs-progs: lowmem: search key of root again after check_fs_root() under repair btrfs-progs: lowmem: continue to check item in last slot while checking inodes btrfs-progs: lowmem: improve check_inode_extref() btrfs-progs: fsck-tests: add test case inode_extref without dir_item and dir_index check/mode-lowmem.c | 148 ++++++++++++++---- ctree.h | 6 +- inode-item.c | 6 +- inode.c | 14 +- .../inode_extref_without_dir_item_index.img | Bin 0 -> 10240 bytes ... inode_ref_without_dir_item_and_index.img} | Bin 6 files changed, 139 insertions(+), 35 deletions(-) create mode 100644 tests/fsck-tests/009-no-dir-item-or-index/inode_extref_without_dir_item_index.img rename tests/fsck-tests/009-no-dir-item-or-index/{default_case.img => inode_ref_without_dir_item_and_index.img} (100%) -- 2.18.0
