Hi all, This series refactors various libxfs and scrub code in preparation for landing the online repair feature. The first three patches continue the refactoring of libxfs validator functions that was started in 4.16. This time we strengthen the extent record checks to include out of bounds tests, which scrub/repair will need to check ifork contents. Patches 2-3 refactor the inode corruption logging so that we can capture both the exact code check that triggered the warning as well as dump the relevant metadata buffer for offline analysis. Patch 4 enhances the block mapping scrubber to take a third pass over the mapping data to make sure that every rmap also has a corresponding bmap. This is only done for btree format forks because the complexity involved in using a btree vastly increases the chances for problems. Patch 5 removes the raw inode record checking that was introduced in the original online scrub patches. Not only was it causing some problems with the way it was handling the inode cluster buffer, it's also unnecessary -- the inode repair code knows how to fix (nearly) every corruption that the iget paths look for, so we should move on to repair asap. Patch 6 cleans up helper function parameters that were made unnecessary by the previous patch. Patch 7 reclassifies inode cluster buffer read problems in the inode btree scrubber as a cross referencing error instead of a straight corruption. Patch 8 moves the extent size hint validators into libxfs so that scrub and repair can share the code. If you're going to start using this mess, you probably ought to just pull from my git trees. The kernel patches[1] should apply against 4.16-rc2. xfsprogs[2] and xfstests[3] can be found in their usual places. The git trees contain all four series' worth of changes. This is an extraordinary way to eat your data. Enjoy! Comments and questions are, as always, welcome. --D [1] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=djwong-devel [2] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=djwong-devel [3] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfstests-dev.git/log/?h=djwong-devel -- To unsubscribe from this list: send the line "unsubscribe linux-xfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html