Hi all, Fix a deficiency in the scrubbers where we don't quite properly detect gaps in records. Also, enhance the fscounters scrubber to check the free rt extent count, look for oversized rmaps when checking the bmap, and verify the non-shared status of extents not explicitly covered by refcount records. 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-fixes xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=scrub-fixes --- fs/xfs/libxfs/xfs_alloc.c | 23 +++++++++--- fs/xfs/libxfs/xfs_btree.c | 79 +++++++++++++++++++++++++++++++++++++--- fs/xfs/libxfs/xfs_btree.h | 6 +++ fs/xfs/libxfs/xfs_ialloc.c | 4 +- fs/xfs/libxfs/xfs_inode_fork.c | 2 + fs/xfs/libxfs/xfs_refcount.c | 15 +++++++- fs/xfs/libxfs/xfs_rmap.c | 15 +++++++- fs/xfs/scrub/agheader.c | 33 +++++------------ fs/xfs/scrub/bmap.c | 74 ++++++++++++++++++++++++++++++++++++- fs/xfs/scrub/btree.c | 49 ++++++++++++++++++++++++- fs/xfs/scrub/common.c | 23 +++++------- fs/xfs/scrub/common.h | 5 +-- fs/xfs/scrub/fscounters.c | 50 +++++++++++++++++++++++++ fs/xfs/scrub/health.c | 3 +- fs/xfs/scrub/quota.c | 6 ++- fs/xfs/scrub/refcount.c | 80 ++++++++++++++++++++++++++++++++++++++-- fs/xfs/scrub/scrub.c | 2 + fs/xfs/scrub/scrub.h | 1 + 18 files changed, 402 insertions(+), 68 deletions(-)