r = glfs_discard_async(g->fd, io_u->offset, io_u->xfer_buflen,
gf_async_cb, io_u);
#endif
+ else if (io_u->ddir == DDIR_DATASYNC)
+ r = glfs_fdatasync_async(g->fd, gf_async_cb, io_u);
else if (io_u->ddir == DDIR_SYNC)
r = glfs_fsync_async(g->fd, gf_async_cb, io_u);
else
- r = -EINVAL;
+ r = EINVAL;
if (r) {
log_err("glfs queue failed.\n");
return r;
}
-static int fio_gf_async_prep(struct thread_data *td, struct io_u *io_u)
-{
- dprint(FD_FILE, "%s\n", __FUNCTION__);
-
- if (!ddir_rw(io_u->ddir))
- return 0;
-
- return 0;
-}
-
static struct ioengine_ops ioengine = {
.name = "gfapi_async",
.version = FIO_IOOPS_VERSION,
.init = fio_gf_async_setup,
.cleanup = fio_gf_cleanup,
- .prep = fio_gf_async_prep,
.queue = fio_gf_async_queue,
.open_file = fio_gf_open_file,
.close_file = fio_gf_close_file,