Set RWF_ATOMIC for writes and oatomic==1. Guard setting RWF_ATOMIC by FIO_HAVE_RWF_ATOMIC, as only linux supports RWF_ATOMIC. Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> --- engines/libaio.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/engines/libaio.c b/engines/libaio.c index aaccc7ce..c2d43793 100644 --- a/engines/libaio.c +++ b/engines/libaio.c @@ -110,6 +110,10 @@ static int fio_libaio_prep(struct thread_data *td, struct io_u *io_u) io_prep_pwrite(iocb, f->fd, io_u->xfer_buf, io_u->xfer_buflen, io_u->offset); if (o->nowait) iocb->aio_rw_flags |= RWF_NOWAIT; +#ifdef FIO_HAVE_RWF_ATOMIC + if (td->o.oatomic) + iocb->aio_rw_flags |= RWF_ATOMIC; +#endif } else if (ddir_sync(io_u->ddir)) io_prep_fsync(iocb, f->fd); @@ -440,7 +444,8 @@ FIO_STATIC struct ioengine_ops ioengine = { .name = "libaio", .version = FIO_IOOPS_VERSION, .flags = FIO_ASYNCIO_SYNC_TRIM | - FIO_ASYNCIO_SETS_ISSUE_TIME, + FIO_ASYNCIO_SETS_ISSUE_TIME | + FIO_ATOMICWRITES, .init = fio_libaio_init, .post_init = fio_libaio_post_init, .prep = fio_libaio_prep, -- 2.31.1