ret = pread(f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset);
else if (io_u->ddir == DDIR_WRITE)
ret = pwrite(f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset);
- else if (io_u->ddir == DDIR_TRIM)
- ret = do_io_u_trim(td, io_u);
- else
+ else if (io_u->ddir == DDIR_TRIM) {
+ do_io_u_trim(td, io_u);
+ return FIO_Q_COMPLETED;
+ } else
ret = do_io_u_sync(td, io_u);
return fio_io_end(td, io_u, ret);
ret = read(f->fd, io_u->xfer_buf, io_u->xfer_buflen);
else if (io_u->ddir == DDIR_WRITE)
ret = write(f->fd, io_u->xfer_buf, io_u->xfer_buflen);
- else if (io_u->ddir == DDIR_TRIM)
- ret = do_io_u_trim(td, io_u);
- else
+ else if (io_u->ddir == DDIR_TRIM) {
+ do_io_u_trim(td, io_u);
+ return FIO_Q_COMPLETED;
+ } else
ret = do_io_u_sync(td, io_u);
return fio_io_end(td, io_u, ret);
}
static void fio_vsyncio_set_iov(struct syncio_data *sd, struct io_u *io_u,
- int index)
+ int idx)
{
- sd->io_us[index] = io_u;
- sd->iovecs[index].iov_base = io_u->xfer_buf;
- sd->iovecs[index].iov_len = io_u->xfer_buflen;
+ sd->io_us[idx] = io_u;
+ sd->iovecs[idx].iov_base = io_u->xfer_buf;
+ sd->iovecs[idx].iov_len = io_u->xfer_buflen;
sd->last_offset = io_u->offset + io_u->xfer_buflen;
sd->last_file = io_u->file;
sd->last_ddir = io_u->ddir;