Lines Matching refs:io_u
10 struct io_u *io_u;
14 static struct io_u *fio_gf_event(struct thread_data *td, int event)
27 struct io_u *io_u;
32 io_u_qiter(&td->io_u_all, io_u, i) {
35 if (!(io_u->flags & IO_U_F_FLIGHT))
38 io = io_u->engine_data;
41 g->aio_events[events] = io_u;
59 static void fio_gf_io_u_free(struct thread_data *td, struct io_u *io_u)
61 struct fio_gf_iou *io = io_u->engine_data;
66 io_u->engine_data = NULL;
71 static int fio_gf_io_u_init(struct thread_data *td, struct io_u *io_u)
75 if (!io_u->engine_data) {
84 io->io_u = io_u;
85 io_u->engine_data = io;
92 struct io_u *io_u = data;
93 struct fio_gf_iou *iou = io_u->engine_data;
100 struct io_u *io_u)
105 dprint(FD_IO, "%s op %s\n", __FUNCTION__, io_ddir_name(io_u->ddir));
107 fio_ro_check(td, io_u);
109 if (io_u->ddir == DDIR_READ)
110 r = glfs_pread_async(g->fd, io_u->xfer_buf, io_u->xfer_buflen,
111 io_u->offset, 0, gf_async_cb, io_u);
112 else if (io_u->ddir == DDIR_WRITE)
113 r = glfs_pwrite_async(g->fd, io_u->xfer_buf, io_u->xfer_buflen,
114 io_u->offset, 0, gf_async_cb, io_u);
116 else if (io_u->ddir == DDIR_TRIM)
117 r = glfs_discard_async(g->fd, io_u->offset, io_u->xfer_buflen,
118 gf_async_cb, io_u);
120 else if (io_u->ddir == DDIR_DATASYNC)
121 r = glfs_fdatasync_async(g->fd, gf_async_cb, io_u);
122 else if (io_u->ddir == DDIR_SYNC)
123 r = glfs_fsync_async(g->fd, gf_async_cb, io_u);
129 io_u->error = r;
135 io_u->error = r;
136 td_verror(td, io_u->error, "xfer");
154 g->aio_events = calloc(td->o.iodepth, sizeof(struct io_u *));