Otherwise it can disappear in midair.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
void get_file(struct fio_file *f)
{
+ assert(f->flags & FIO_FILE_OPEN);
f->references++;
}
}
} while (1);
+ assert(io_u->file->flags & FIO_FILE_OPEN);
+
if (td->zone_bytes >= td->o.zone_size) {
td->zone_bytes = 0;
f->last_pos += td->o.zone_skip;
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
+#include <assert.h>
#include "fio.h"
io_u->offset = ipo->offset;
io_u->buflen = ipo->len;
io_u->file = ipo->file;
+
+ if ((io_u->file->flags & FIO_FILE_OPEN) == 0) {
+ int r = td_io_open_file(td, io_u->file);
+
+ if (r)
+ return 1;
+ }
+
+ get_file(ipo->file);
+ assert(io_u->file->flags & FIO_FILE_OPEN);
io_u->ddir = DDIR_READ;
io_u->xfer_buf = io_u->buf;
io_u->xfer_buflen = io_u->buflen;