Hi all, The existing scrub media scan code (phase 6) has a lot of problems dealing with errors. It treats runtime errors (e.g. ENOMEM) as disk errors, it fails to handle short reads properly, it reports entire extents as failed when the read returns EIO instead of single-stepping filesystem blocks to find the bad ones, and there's no good way to test that it works. This series fixes each of those problems and adds a couple of debugging knobs so that we can simulate disk errors and short reads to make sure that the media scan code actually detects media errors correctly. 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=scrub-media-error-detection