We need to grab and mark the file open before jumping to an error path
The error path will close the file.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/ioengines.c b/ioengines.c
index 3e17897..1a7a630 100644
--- a/ioengines.c
+++ b/ioengines.c
@@ -329,6 +329,13 @@
return 1;
}
+ fio_file_reset(f);
+ f->flags |= FIO_FILE_OPEN;
+ f->flags &= ~FIO_FILE_CLOSING;
+
+ td->nr_open_files++;
+ get_file(f);
+
if (f->filetype == FIO_TYPE_PIPE) {
if (td_random(td)) {
log_err("fio: can't seek on pipes (no random io)\n");
@@ -336,10 +343,6 @@
}
}
- fio_file_reset(f);
- f->flags |= FIO_FILE_OPEN;
- f->flags &= ~FIO_FILE_CLOSING;
-
if (td->io_ops->flags & FIO_DISKLESSIO)
goto done;
@@ -366,8 +369,6 @@
done:
log_file(td, f, FIO_LOG_OPEN_FILE);
- td->nr_open_files++;
- get_file(f);
return 0;
err:
if (td->io_ops->close_file)