From: Alan Adamson <alan.adamson@xxxxxxxxxx> Set RWF_ATOMIC for writes and atomic==1. Signed-off-by: Alan Adamson <alan.adamson@xxxxxxxxxx> jpg: Set FIO_ATOMICWRITES for pvsync2 Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> --- engines/sync.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/engines/sync.c b/engines/sync.c index b8be4eb3..729d8a71 100644 --- a/engines/sync.c +++ b/engines/sync.c @@ -175,9 +175,11 @@ static enum fio_q_status fio_pvsyncio2_queue(struct thread_data *td, if (io_u->ddir == DDIR_READ) ret = preadv2(f->fd, iov, 1, io_u->offset, flags); - else if (io_u->ddir == DDIR_WRITE) + else if (io_u->ddir == DDIR_WRITE) { + if (td->o.oatomic) + flags |= RWF_ATOMIC; ret = pwritev2(f->fd, iov, 1, io_u->offset, flags); - else if (io_u->ddir == DDIR_TRIM) { + } else if (io_u->ddir == DDIR_TRIM) { do_io_u_trim(td, io_u); return FIO_Q_COMPLETED; } else @@ -476,7 +478,8 @@ static struct ioengine_ops ioengine_pvrw2 = { .open_file = generic_open_file, .close_file = generic_close_file, .get_file_size = generic_get_file_size, - .flags = FIO_SYNCIO, + .flags = FIO_SYNCIO | + FIO_ATOMICWRITES, .options = options, .option_struct_size = sizeof(struct psyncv2_options), }; -- 2.31.1