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)