From: Vincent Fu Date: Wed, 11 Sep 2019 14:56:40 +0000 (-0400) Subject: filesetup: honor the offset option X-Git-Tag: fio-3.16~6 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=ad46c5715ffc5d4e70d2e941225b1f504f23e409 filesetup: honor the offset option Commands like the following do not honor the value given by the offset option: ./fio --name=test --rw=randread --runtime=10s --offset=90% --time_based --ioengine=null --size=1T --norandommap --randrepeat=0 ./fio --name=test --size=8k --offset=4k In the random case, eventually a random offset will be generated beyond the 1T file size, leading to a failure. In the sequential case, a 12k file will be created despite size specifying the 8k end boundary. This patch modifies setup_files() so that f->io_size incorporates the offset for cases like those above. Signed-off-by: Jens Axboe --- diff --git a/filesetup.c b/filesetup.c index 7904d187..b8d1d838 100644 --- a/filesetup.c +++ b/filesetup.c @@ -1047,7 +1047,7 @@ int setup_files(struct thread_data *td) * doesn't divide nicely with the min blocksize, * make the first files bigger. */ - f->io_size = fs; + f->io_size = fs - f->file_offset; if (nr_fs_extra) { nr_fs_extra--; f->io_size += bs;