X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=engines%2Ffio-engine-posixaio.c;h=894a410a459117571518c00b66abe2d790a81183;hp=2d0fd3114b6469729997721643f8d66e3826451f;hb=cb781c758e5df7ff4c6f655c1e4f9df3043a4be9;hpb=87dc1ab1b4df7b977f60e3d43533a896e2ee665b diff --git a/engines/fio-engine-posixaio.c b/engines/fio-engine-posixaio.c index 2d0fd311..894a410a 100644 --- a/engines/fio-engine-posixaio.c +++ b/engines/fio-engine-posixaio.c @@ -10,6 +10,8 @@ #include "fio.h" #include "os.h" +#ifdef FIO_HAVE_POSIXAIO + struct posixaio_data { struct io_u **aio_events; }; @@ -169,7 +171,9 @@ static int fio_posixaio_init(struct thread_data *td) { struct posixaio_data *pd = malloc(sizeof(*pd)); + memset(pd, 0, sizeof(*pd)); pd->aio_events = malloc(td->iodepth * sizeof(struct io_u *)); + memset(pd->aio_events, 0, td->iodepth * sizeof(struct io_u *)); td->io_ops->data = pd; return 0; @@ -186,3 +190,24 @@ struct ioengine_ops ioengine = { .event = fio_posixaio_event, .cleanup = fio_posixaio_cleanup, }; + +#else /* FIO_HAVE_POSIXAIO */ + +/* + * When we have a proper configure system in place, we simply wont build + * and install this io engine. For now install a crippled version that + * just complains and fails to load. + */ +static int fio_posixaio_init(struct thread_data fio_unused *td) +{ + fprintf(stderr, "fio: posixaio not available\n"); + return 1; +} + +struct ioengine_ops ioengine = { + .name = "posixaio", + .version = FIO_IOOPS_VERSION, + .init = fio_posixaio_init, +}; + +#endif