On Tue, May 23, 2017 at 03:06:18PM +0100, Luis Henriques wrote: > Filesystesm with the "default behaviour" will always return the offset of > the end of the file when lseek'ing with SEEK_HOLE. This test does the > following: > > - fallocate 4 << 20 bytes > - write PAGE_SIZE bytes at offset 0 > - writes PAGE_SIZE bytes at offset 4 << 20 > > Thus, using lseek in an FS with the "default behaviour" will set the > position at 4 << 20 + PAGE_SIZE. Thanks for fixing it! I've tested it on a "default behavior" filesystem (gfs2) this time, and test passed. > > Cc: Jan Kara <jack@xxxxxxx> > Signed-off-by: Luis Henriques <lhenriques@xxxxxxxx> > --- > src/seek_sanity_test.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/seek_sanity_test.c b/src/seek_sanity_test.c > index d52e2b6dab79..b35a324c749c 100644 > --- a/src/seek_sanity_test.c > +++ b/src/seek_sanity_test.c > @@ -335,8 +335,8 @@ static int test15(int fd, int testnum) > goto out; > > /* offset at the beginning */ > - ret += do_lseek(testnum, 1, fd, filsz, SEEK_HOLE, 0, bufsz); > - ret += do_lseek(testnum, 2, fd, filsz, SEEK_HOLE, 1, bufsz); > + ret += do_lseek(testnum, 1, fd, filsz + bufsz, SEEK_HOLE, 0, bufsz); > + ret += do_lseek(testnum, 2, fd, filsz + bufsz, SEEK_HOLE, 1, bufsz); I think we should update filsz after the last write, before any do_lseek() test, because filsz was extended by bufsz and the 4th arg of do_lseek expects the actual file size. > ret += do_lseek(testnum, 3, fd, filsz, SEEK_DATA, 0, 0); > ret += do_lseek(testnum, 4, fd, filsz, SEEK_DATA, 1, 1); > ret += do_lseek(testnum, 5, fd, filsz, SEEK_DATA, bufsz, filsz); And the expected result of the 5th test should be 'filsz - bufsz' then. Thanks, Eryu > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html