Hi all, This is the eleventh revision of a patchset that adds to XFS kernel support for online metadata scrubbing and repair. There aren't any on-disk format changes. The overview of the online scrub functionality isn't any different than it was with the first kernel series, so I'll dive into what's in this set. The first five patches fix some minor problems that I discovered in the process of triaging the ~9,400 test cases (nr_objs * nr_fields * nr_fuzz_verbs) to see if xfs_scrub identifies the corruption correctly. These patches are totally new. The sixteen patches after that are largely unchanged from the v10 post except for minor bug fixes and a new patch to record cross-referencing problems that are mistakenly identified as corruptions in 4.15. Today's submission is the third of four parts; it adds to the various metadata scrubbers the ability to cross-reference other metadata. If a given record has a corresponding record somewhere else (e.g. each inobt record has a corresponding rmapbt record for inodes) or lacks a corresponding record elsewhere (e.g. each bmbt record does /not/ match to any bnobt records) then we can be far more certain of the filesystem's correctness. We try to augment each scrubber with as many cross-reference checks as we possibly can, though we are careful to avoid deadlocks by taking locks in the wrong order. In particular, we cannot check rmap records against inode bmbts (we lock inode and then AG); we must only check inode bmbt records against the rmap. This means that the userspace driver program must be careful not to claim that the scrub is finished unless it has scanned everything. 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.15-rc4. 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