btrfs-progs/check
Qu Wenruo eae0c8e32f btrfs-progs: check/original: Fix inode mode in subvolume trees
To make original mode to repair imode error in subvolume trees, this
patch will do:

- Remove the show-stopper checks for root->objectid.
  Now repair_imode_original() will accept inodes in subvolume trees.

- Export detect_imode() for original mode
  Due to the call requirement, original mode must use an existing trans
  handler to do the repair, thus we need to re-implement most of the
  work done in repair_imode_common().

- Make repair_imode_original() to use detect_imode().

- Free the path after reset_imode()
  reset_imode() keeps the path, as lowmem mode uses path to locate its
  current check position.
  But for original mode, the unreleased path can cause later repair to
  report warning, so we need to manually release the path.

- Update rec->imode after imode reset
  So later repair depending on rec->imode can get correct value.

- Move the repair before repair_inode_nlinks()
  repair_inode_nlinks() needs correct imode to add DIR_INDEX/DIR_ITEM.
  So moving the repair before repair_inode_nlinks() makes the latter
  repair happier.

Signed-off-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
2019-11-18 19:21:07 +01:00
..
common.h btrfs-progs: check: move device_record to main.c 2019-10-14 17:27:41 +02:00
main.c btrfs-progs: check/original: Fix inode mode in subvolume trees 2019-11-18 19:21:07 +01:00
mode-common.c btrfs-progs: check/original: Fix inode mode in subvolume trees 2019-11-18 19:21:07 +01:00
mode-common.h btrfs-progs: check/original: Fix inode mode in subvolume trees 2019-11-18 19:21:07 +01:00
mode-lowmem.c btrfs-progs: check/lowmem: Repair bad imode early 2019-11-18 19:21:07 +01:00
mode-lowmem.h btrfs-progs: check/lowmem: Check and repair root generation 2019-09-04 16:06:50 +02:00
mode-original.h btrfs-progs: move rbtree-utils.[ch] to common/ 2019-07-03 20:49:04 +02:00
qgroup-verify.c btrfs-progs: move qgroup-verify.[ch] to check/ 2019-10-14 17:27:35 +02:00
qgroup-verify.h btrfs-progs: move qgroup-verify.[ch] to check/ 2019-10-14 17:27:35 +02:00