xfs/420: fix occasional test failures due to pagecache readahead
Every now and then, this test fails with this golden output:
--- xfs/420.out
+++ xfs/420.out.bad
@@ -29,7 +29,7 @@
Whence Result
DATA 0
HOLE 131072
-DATA 196608
+DATA 192512
HOLE 262144
Compare files
c2803804acc9936eef8aab42c119bfac SCRATCH_MNT/test-420/file1
Curiously, the file checksums always match, and it's not *forbidden* for
the page cache to have a page backing an unwritten extent that hasn't
been written.
The condition that this test cares about is that block 3 (192k-256k) are
reported by SEEK_DATA as data even if the data fork has a hole and the
COW fork has an unwritten extent. Matthew Wilcox thinks this is a side
effect of readahead.
To fix this occasional false failure, call SEEK_DATA and SEEK_HOLE only
on the offsets that we care about.
Suggested-by: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>