Hi all, In the second part of the twenty-second revision of the online repair patchset, we implement repairing of inode records, inode forks, and inode block maps. We also implement a meager symbolic link repair ability. If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=repair-inodes xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=repair-inodes --- fs/xfs/Makefile | 3 fs/xfs/libxfs/xfs_attr_leaf.c | 32 + fs/xfs/libxfs/xfs_attr_leaf.h | 2 fs/xfs/libxfs/xfs_bmap.c | 22 + fs/xfs/libxfs/xfs_bmap.h | 2 fs/xfs/libxfs/xfs_bmap_btree.c | 117 +++- fs/xfs/libxfs/xfs_bmap_btree.h | 8 fs/xfs/libxfs/xfs_btree_staging.c | 11 fs/xfs/libxfs/xfs_btree_staging.h | 8 fs/xfs/libxfs/xfs_format.h | 3 fs/xfs/libxfs/xfs_iext_tree.c | 23 + fs/xfs/libxfs/xfs_inode_fork.c | 1 fs/xfs/libxfs/xfs_inode_fork.h | 3 fs/xfs/scrub/bmap.c | 22 + fs/xfs/scrub/bmap_repair.c | 637 ++++++++++++++++++++++ fs/xfs/scrub/inode_repair.c | 1053 +++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/refcount_repair.c | 6 fs/xfs/scrub/repair.h | 24 + fs/xfs/scrub/scrub.c | 8 fs/xfs/scrub/symlink.c | 5 fs/xfs/scrub/symlink_repair.c | 245 +++++++++ fs/xfs/scrub/trace.h | 34 + fs/xfs/xfs_symlink.c | 147 +++-- fs/xfs/xfs_symlink.h | 3 fs/xfs/xfs_trans.c | 54 ++ fs/xfs/xfs_trans.h | 2 26 files changed, 2347 insertions(+), 128 deletions(-) create mode 100644 fs/xfs/scrub/bmap_repair.c create mode 100644 fs/xfs/scrub/inode_repair.c create mode 100644 fs/xfs/scrub/symlink_repair.c