default:
io_u->error = err;
case ECANCELED:
+ io_u->resid = io_u->xfer_buflen;
case 0:
pd->aio_events[r++] = io_u;
io_u->seen = 1;
if (ret) {
io_u->error = errno;
- td_verror(td, io_u->error);
+ td_verror(td, io_u->error, "xfer");
+ return FIO_Q_COMPLETED;
}
-
- return io_u->error;
+
+ return FIO_Q_QUEUED;
}
static void fio_posixaio_cleanup(struct thread_data *td)
.getevents = fio_posixaio_getevents,
.event = fio_posixaio_event,
.cleanup = fio_posixaio_cleanup,
+ .open_file = generic_open_file,
+ .close_file = generic_close_file,
};
#else /* FIO_HAVE_POSIXAIO */