--- accelio-1.7/examples/raio/usr/fio/libraio.c.orig 2016-12-24 13:09:13.375548622 +0100 +++ accelio-1.7/examples/raio/usr/fio/libraio.c 2016-12-25 00:04:40.251766246 +0100 @@ -107,7 +107,7 @@ static struct io_u *fio_libraio_event(struct thread_data *td, int event) { - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; struct raio_event *ev; struct io_u *io_u; @@ -129,8 +129,8 @@ static int fio_libraio_getevents(struct thread_data *td, unsigned int min, unsigned int max, const struct timespec *t) { - struct libraio_data *ld = td->io_ops->data; - unsigned actual_min = td->o.iodepth_batch_complete == 0 ? 0 : min; + struct libraio_data *ld = td->io_ops_data; + unsigned actual_min = td->o.iodepth_batch_complete_min == 0 ? 0 : min; int r, events = 0; do { @@ -152,7 +152,7 @@ static int fio_libraio_queue(struct thread_data *td, struct io_u *io_u) { - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; struct libraio_engine_data *engine_data = io_u->engine_data; fio_ro_check(td, io_u); @@ -170,7 +170,7 @@ static void fio_libraio_queued(struct thread_data *td, struct io_u **io_us, unsigned int nr) { - struct timeval now; + struct timespec now; unsigned int i; if (!fio_fill_issue_time(td)) @@ -188,7 +188,7 @@ static int fio_libraio_commit(struct thread_data *td) { - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; struct raio_iocb **iocbs; struct io_u **io_us; int ret; @@ -221,7 +221,7 @@ static int fio_libraio_cancel(struct thread_data *td, struct io_u *io_u) { - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; struct libraio_engine_data *engine_data = io_u->engine_data; return raio_cancel(ld->raio_ctx, &engine_data->iocb, ld->raio_events); @@ -290,7 +290,7 @@ *_flags = -1; - if (td_trim(td) && f->filetype != FIO_TYPE_BD) { + if (td_trim(td) && f->filetype != FIO_TYPE_BLOCK) { log_err("libraio: trim only applies to block device\n"); return 1; } @@ -357,7 +357,7 @@ char path[256]; char host[256]; uint32_t port; - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; dprint(FD_FILE, "fd open %s\n", f->file_name); @@ -436,7 +436,7 @@ static int fio_libraio_open_file(struct thread_data *td, struct fio_file *f) { int ret; - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; if (ld->fd != -1) { f->fd = ld->fd; @@ -475,7 +475,7 @@ static int fio_libraio_close_file(struct thread_data *td, struct fio_file *f) { int ret; - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; /* don't close the file until cleanup */ if (ld->force_close == 0) { @@ -512,7 +512,7 @@ return 0; } - td->io_ops->data = &dummy_ld; + td->io_ops_data = &dummy_ld; ret = fio_libraio_open(td, f); if (ret != 0) { @@ -570,7 +570,7 @@ ld->iocbs_nr = 0; ld->fd = -1; - td->io_ops->data = ld; + td->io_ops_data = ld; f.file_name = td->o.filename; ret = fio_libraio_open_file(td, &f); @@ -597,7 +597,7 @@ static void fio_libraio_cleanup(struct thread_data *td) { - struct libraio_data *ld = td->io_ops->data; + struct libraio_data *ld = td->io_ops_data; struct libraio_engine_data *engine_data; struct io_u *io_u; int i; @@ -619,7 +619,7 @@ free(ld->io_us); free(ld->engine_datas); free(ld); - td->io_ops->data = NULL; + td->io_ops_data = NULL; } } --- accelio-1.6/examples/raio/usr/fio/Makefile.am.orig 2016-03-28 14:58:45.000000000 +0200 +++ accelio-1.6/examples/raio/usr/fio/Makefile.am 2016-04-10 21:54:08.050356893 +0200 @@ -30,6 +30,7 @@ # list of sources for the 'libraio_fio' shared library libraio_fio_la_SOURCES = libraio.c +libraio_fio_la_LDFLAGS = -module -avoid-version libraio_fio_la_LIBADD = -lraio -lxio $(libxio_rdma_ldflags) -lrt -ldl -lpthread \ -L$(top_builddir)/src/usr/ -L$(top_builddir)/examples/raio/