Hi all, One of the questions that came up on the last round of review on dealing with the iomap zeroing problem [1] was having some proper test coverage. When looking back at some of my custom tests, I realized some relied on delay injection hacks, and otherwise felt like a random collection of command sequences and whatnot that were probably somewhat duplicative. Rather than adding fstests that continuously add random sequences of xfs_io commands to try and test for zeroing problems, I started playing around with fsx and came up with this series. In a nutshell, this does intentional post-eof writes (to the eof page, via mapped writes) for operations that are otherwise expected to perform partial page zeroing. This allows the existing post-eof and unexpected data checks in fsx to detect problems as normal. In my initial tests, this reproduces both the truncate (already fixed) and write extension problems related to iomap zero range fairly quickly on XFS. It also produces zeroing issues on other non-iomap filesystems (ext4, btrfs, bcachefs), which I suspect is something that probably needs to be fixed on a per-fs basis. To test fsx itself, this so far seems to run reliably longer term on XFS with the corresponding iomap zero range fix in place. Patch 1 is refactoring prep, patch 2 enables the eof data write mechanism, and patch 3 adds a new fstests test to use it. The test currently only supports XFS due to the aforementioned issues, but the idea is to remove the restriction as other fs' are fixed. Thoughts, reviews, flames appreciated. Brian [1] https://lore.kernel.org/linux-fsdevel/20240718130212.23905-1-bfoster@xxxxxxxxxx/ Brian Foster (3): fsx: factor out a file size update helper fsx: support eof page pollution for eof zeroing test coverage generic: test to run fsx eof pollution ltp/fsx.c | 129 +++++++++++++++++++++++++++++++----------- tests/generic/362 | 27 +++++++++ tests/generic/362.out | 2 + 3 files changed, 126 insertions(+), 32 deletions(-) create mode 100755 tests/generic/362 create mode 100644 tests/generic/362.out -- 2.45.0