Lines Matching refs:io_u
29 static int fio_splice_read_old(struct thread_data *td, struct io_u *io_u)
32 struct fio_file *f = io_u->file;
37 offset = io_u->offset;
38 buflen = io_u->xfer_buflen;
39 p = io_u->xfer_buf;
66 return io_u->xfer_buflen;
73 static int fio_splice_read(struct thread_data *td, struct io_u *io_u)
76 struct fio_file *f = io_u->file;
83 offset = io_u->offset;
84 mmap_len = buflen = io_u->xfer_buflen;
87 map = mmap(io_u->xfer_buf, buflen, PROT_READ, MAP_PRIVATE|OS_MAP_ANON, 0, 0);
89 td_verror(td, errno, "mmap io_u");
96 p = io_u->xfer_buf;
129 p = io_u->xfer_buf;
154 td_verror(td, errno, "munnap io_u");
160 return io_u->xfer_buflen;
167 static int fio_splice_write(struct thread_data *td, struct io_u *io_u)
171 .iov_base = io_u->xfer_buf,
172 .iov_len = io_u->xfer_buflen,
175 struct fio_file *f = io_u->file;
176 off_t off = io_u->offset;
199 return io_u->xfer_buflen;
202 static int fio_spliceio_queue(struct thread_data *td, struct io_u *io_u)
207 fio_ro_check(td, io_u);
209 if (io_u->ddir == DDIR_READ) {
211 ret = fio_splice_read(td, io_u);
221 ret = fio_splice_read_old(td, io_u);
222 } else if (io_u->ddir == DDIR_WRITE)
223 ret = fio_splice_write(td, io_u);
224 else if (io_u->ddir == DDIR_TRIM)
225 ret = do_io_u_trim(td, io_u);
227 ret = do_io_u_sync(td, io_u);
229 if (ret != (int) io_u->xfer_buflen) {
231 io_u->resid = io_u->xfer_buflen - ret;
232 io_u->error = 0;
235 io_u->error = errno;
238 if (io_u->error) {
239 td_verror(td, io_u->error, "xfer");
240 if (io_u->error == EINVAL)