Hi all, A long-time goal of mine is to get rid of xfs_check from fstests, because it is deprecated, adds quite a bit of runtime to the test suite, and consumes memory like crazy. We've not been able to do that for lack of even a basic field-by-field corruption detection comparison between check and repair, so I temporarily modified the dangerous_repair tests to warn when check finds something but repair says clean. The patches below teach xfs_repair to complain about things that it previously did not catch but xfs_check did. The one remaining gap is the lack of quota counter checking, which will be sent in a separate series once I've worked out all the bugs. v2: mostly minor updates and add a bunch of RVB tags. Also pick up the one quota fix because why not... 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 xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=check-vs-repair --- libxfs/libxfs_api_defs.h | 4 + quota/edit.c | 22 +++--- repair/attr_repair.c | 2 - repair/da_util.c | 25 +++++-- repair/dino_chunks.c | 6 +- repair/dinode.c | 109 +++---------------------------- repair/dinode.h | 14 ---- repair/dir2.c | 21 ++++++ repair/phase4.c | 11 ++- repair/phase6.c | 3 + repair/prefetch.c | 9 +-- repair/sb.c | 3 - repair/scan.c | 160 ++++++++++++++++++++++++++++++++-------------- 13 files changed, 196 insertions(+), 193 deletions(-)