X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;ds=sidebyside;f=engines%2Flibaio.c;h=7c44927a3b8b5a3ac39b37b4eb43ed6760582d87;hb=7bb48f84ac78cac1f90e3e04d0220d90d6a64a6b;hp=bc9c42877fdaaadf98d1c5ab51520c4e85d3903b;hpb=f423479dad8916c758792308863dcd833a1a36c8;p=fio.git diff --git a/engines/libaio.c b/engines/libaio.c index bc9c4287..7c44927a 100644 --- a/engines/libaio.c +++ b/engines/libaio.c @@ -1,5 +1,7 @@ /* - * native linux aio io engine + * libaio engine + * + * IO engine using the Linux native aio interface. * */ #include @@ -85,7 +87,7 @@ static int fio_libaio_queue(struct thread_data *td, struct io_u *io_u) { struct libaio_data *ld = td->io_ops->data; - if (ld->iocbs_nr == (int) td->iodepth) + if (ld->iocbs_nr == (int) td->o.iodepth) return FIO_Q_BUSY; /* @@ -188,20 +190,23 @@ static void fio_libaio_cleanup(struct thread_data *td) static int fio_libaio_init(struct thread_data *td) { struct libaio_data *ld = malloc(sizeof(*ld)); + int err; memset(ld, 0, sizeof(*ld)); - if (io_queue_init(td->iodepth, &ld->aio_ctx)) { - td_verror(td, errno, "io_queue_init"); + + err = io_queue_init(td->o.iodepth, &ld->aio_ctx); + if (err) { + td_verror(td, -err, "io_queue_init"); free(ld); return 1; } - ld->aio_events = malloc(td->iodepth * sizeof(struct io_event)); - memset(ld->aio_events, 0, td->iodepth * sizeof(struct io_event)); - ld->iocbs = malloc(td->iodepth * sizeof(struct iocb *)); + ld->aio_events = malloc(td->o.iodepth * sizeof(struct io_event)); + memset(ld->aio_events, 0, td->o.iodepth * sizeof(struct io_event)); + ld->iocbs = malloc(td->o.iodepth * sizeof(struct iocb *)); memset(ld->iocbs, 0, sizeof(struct iocb *)); - ld->io_us = malloc(td->iodepth * sizeof(struct io_u *)); - memset(ld->io_us, 0, td->iodepth * sizeof(struct io_u *)); + ld->io_us = malloc(td->o.iodepth * sizeof(struct io_u *)); + memset(ld->io_us, 0, td->o.iodepth * sizeof(struct io_u *)); ld->iocbs_nr = 0; td->io_ops->data = ld; @@ -219,6 +224,8 @@ static struct ioengine_ops ioengine = { .getevents = fio_libaio_getevents, .event = fio_libaio_event, .cleanup = fio_libaio_cleanup, + .open_file = generic_open_file, + .close_file = generic_close_file, }; #else /* FIO_HAVE_LIBAIO */