Hi all, This series enhances the AGI scrub code to check the unlinked inode bucket lists for errors, and fixes them if necessary. Now that iunlink pointer updates are virtual log items, we can batch updates pretty efficiently in the logging code. 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-iunlink xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=repair-iunlink --- fs/xfs/scrub/agheader.c | 40 +++ fs/xfs/scrub/agheader_repair.c | 576 +++++++++++++++++++++++++++++++++++++--- fs/xfs/scrub/trace.h | 128 +++++++++ fs/xfs/xfs_icache.c | 2 fs/xfs/xfs_inode.c | 5 fs/xfs/xfs_inode.h | 11 + 6 files changed, 712 insertions(+), 50 deletions(-)