return io_u;
}
-static int fio_guasi_getevents(struct thread_data *td, int min, int max,
- struct timespec *t)
+static int fio_guasi_getevents(struct thread_data *td, unsigned int min,
+ unsigned int max, struct timespec *t)
{
struct guasi_data *ld = td->io_ops->data;
int n, r;
struct io_u *io_u;
struct timeval now;
+ if (!fio_fill_issue_time(td))
+ return;
+
+ io_u_mark_submit(td, nr);
fio_gettime(&now, NULL);
for (i = 0; i < nr; i++) {
io_u = io_us[i];
io_u->greq = guasi__pwrite(ld->hctx, ld, io_u, 0,
f->fd, io_u->xfer_buf, io_u->xfer_buflen,
io_u->offset);
- else if (io_u->ddir == DDIR_SYNC)
+ else if (ddir_sync(io_u->ddir))
io_u->greq = guasi__fsync(ld->hctx, ld, io_u, 0, f->fd);
else {
log_err("fio_guasi_commit() FAILED: unknow request %d\n",
free(ld->reqs);
free(ld->io_us);
free(ld);
- td->io_ops->data = NULL;
}
GDBG_PRINT(("fio_guasi_cleanup(%p) DONE\n", ld));
}
.cleanup = fio_guasi_cleanup,
.open_file = generic_open_file,
.close_file = generic_close_file,
+ .get_file_size = generic_get_file_size,
};
#else /* FIO_HAVE_GUASI */
*/
static int fio_guasi_init(struct thread_data fio_unused *td)
{
- fprintf(stderr, "fio: guasi not available\n");
+ log_err("fio: guasi not available\n");
return 1;
}