Hi all, This patchset implements an online checker for the realtime summary file. The first few changes are some general cleanups -- scrub should get its own references to all inodes, and we also wrap the inode lock functions so that we can standardize unlocking and releasing inodes that are the focus of a scrub. With that out of the way, we move on to constructing a shadow copy of the rtsummary information from the rtbitmap, and compare the new copy against the ondisk copy. 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=scrub-rtsummary fstests git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=scrub-rtsummary --- fs/xfs/Makefile | 6 + fs/xfs/scrub/bmap.c | 9 +- fs/xfs/scrub/common.c | 63 +++++++++-- fs/xfs/scrub/common.h | 16 ++- fs/xfs/scrub/inode.c | 11 +- fs/xfs/scrub/parent.c | 4 - fs/xfs/scrub/quota.c | 15 +-- fs/xfs/scrub/rtbitmap.c | 48 +------- fs/xfs/scrub/rtsummary.c | 262 ++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/scrub/scrub.c | 17 ++- fs/xfs/scrub/scrub.h | 4 + fs/xfs/scrub/trace.h | 34 ++++++ fs/xfs/xfs_trace.h | 3 + 13 files changed, 410 insertions(+), 82 deletions(-) create mode 100644 fs/xfs/scrub/rtsummary.c