From: Kushal Kumaran Date: Fri, 20 Nov 2020 05:00:05 +0000 (-0800) Subject: error out if ENOSPC during file layout X-Git-Tag: fio-3.25~4 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=9107a641e67f27003fa6cbe7b55b1ec6a0239197;p=fio.git error out if ENOSPC during file layout Hi, When I run fio with --create_only=1 and it runs out of space, it still exits with status 0. I could not figure out if this was intentional (except for the fill_device case, where this is obviously the expected behavior). $ cat ~/fio [global] ioengine=posixaio rw=readwrite size=2g directory=${HOME}/mounts/testdisk thread=1 [trivial-readwrite-1g] $ df -h . Filesystem Size Used Avail Use% Mounted on /dev/loop6 976M 2.6M 907M 1% /home/kushal/mounts/testdisk $ fio ~/fio --create_only=1 trivial-readwrite-1g: (g=0): rw=rw, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=pos ixaio, iodepth=1 fio-3.12 Starting 1 thread trivial-readwrite-1g: Laying out IO file (1 file / 2048MiB) fio: ENOSPC on laying out file, stopping Run status group 0 (all jobs): Disk stats (read/write): loop6: ios=0/0, merge=0/0, ticks=0/0, in_queue=0, util=0.00% $ echo $? 0 A trivial patch for this gives me the behavior I expect. Signed-off-by: Jens Axboe --- diff --git a/filesetup.c b/filesetup.c index f4360a6f..42c5f630 100644 --- a/filesetup.c +++ b/filesetup.c @@ -231,13 +231,12 @@ static int extend_file(struct thread_data *td, struct fio_file *f) break; log_info("fio: ENOSPC on laying out " "file, stopping\n"); - break; } td_verror(td, errno, "write"); } else td_verror(td, EIO, "write"); - break; + goto err; } }