static int fio_posixaio_prep(struct thread_data fio_unused *td,
struct io_u *io_u)
{
- struct aiocb *aiocb = &io_u->aiocb;
+ os_aiocb_t *aiocb = &io_u->aiocb;
struct fio_file *f = io_u->file;
aiocb->aio_fildes = f->fd;
aiocb->aio_buf = io_u->xfer_buf;
aiocb->aio_nbytes = io_u->xfer_buflen;
aiocb->aio_offset = io_u->offset;
+ aiocb->aio_sigevent.sigev_notify = SIGEV_NONE;
io_u->seen = 0;
return 0;
unsigned int max, struct timespec *t)
{
struct posixaio_data *pd = td->io_ops->data;
- struct aiocb *suspend_list[SUSPEND_ENTRIES];
+ os_aiocb_t *suspend_list[SUSPEND_ENTRIES];
struct flist_head *entry;
struct timespec start;
int have_timeout = 0;
/*
* must have some in-flight, wait for at least one
*/
- aio_suspend((const struct aiocb * const *)suspend_list,
+ aio_suspend((const os_aiocb_t * const *)suspend_list,
suspend_entries, t);
goto restart;
}
struct io_u *io_u)
{
struct posixaio_data *pd = td->io_ops->data;
- struct aiocb *aiocb = &io_u->aiocb;
+ os_aiocb_t *aiocb = &io_u->aiocb;
int ret;
fio_ro_check(td, io_u);
if (ret) {
/*
* At least OSX has a very low limit on the number of pending
- * IOs, so if it will return EAGAIN.
+ * IOs, so if it returns EAGAIN, we are out of resources
+ * to queue more. Just return FIO_Q_BUSY to naturally
+ * drop off at this depth.
*/
if (errno == EAGAIN)
return FIO_Q_BUSY;