generic/574: remove invalid test of read completely past EOF
authorEric Biggers <ebiggers@google.com>
Mon, 8 Nov 2021 04:36:20 +0000 (20:36 -0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 14 Nov 2021 10:43:11 +0000 (18:43 +0800)
commit1adc9f01994c3cb1b1870eb5a55f31046b39e934
tree21f442a0714d420b0674cb0f747f3c0319a51413
parent08ea29c66c7887a3f0b5a34ce080f2908270f0d9
generic/574: remove invalid test of read completely past EOF

One of the test cases in generic/574 tests that if a file of length
130999 has fs-verity enabled, and if bytes 131000..131071 (i.e. some
bytes past EOF and in the same block as EOF) are corrupted with nonzero
values, then reads of the corrupted part should fail with EIO.

This isn't a valid test case, because reads that start at or past EOF
are allowed to simply return 0 without doing any I/O.

Therefore, don't run this test case.

This fixes a test failure caused by the kernel commit 8c8387ee3f55
("mm: stop filemap_read() from grabbing a superfluous page").

Note that the other test cases for this same corrupted file remain
valid, including testing that an error is reported during full file
reads and during mmap "reads".  This is because the fs-verity Merkle
tree is defined over full blocks, so the file's last block won't be
readable if it contains corrupted (nonzero) bytes past EOF.  This may
seem odd, but it's working as intended, especially considering that
bytes past EOF in a file's last block are exposed to userspace in mmaps.

Signed-off-by: Eric Biggers <ebiggers@google.com>
tests/generic/574
tests/generic/574.out