Set RWF_ATOMIC for writes and oatomic==1. Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> --- engines/io_uring.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/engines/io_uring.c b/engines/io_uring.c index 1d4a6118..96a042a8 100644 --- a/engines/io_uring.c +++ b/engines/io_uring.c @@ -392,6 +392,8 @@ static int fio_ioring_prep(struct thread_data *td, struct io_u *io_u) sqe->rw_flags = 0; if (o->nowait) sqe->rw_flags |= RWF_NOWAIT; + if (td->o.oatomic && io_u->ddir == DDIR_WRITE) + sqe->rw_flags |= RWF_ATOMIC; /* * Since io_uring can have a submission context (sqthread_poll) @@ -1582,7 +1584,8 @@ static struct ioengine_ops ioengine_uring = { .name = "io_uring", .version = FIO_IOOPS_VERSION, .flags = FIO_ASYNCIO_SYNC_TRIM | FIO_NO_OFFLOAD | - FIO_ASYNCIO_SETS_ISSUE_TIME, + FIO_ASYNCIO_SETS_ISSUE_TIME | + FIO_ATOMICWRITES, .init = fio_ioring_init, .post_init = fio_ioring_post_init, .io_u_init = fio_ioring_io_u_init, -- 2.31.1