diff --git a/io_u.c b/io_u.c index 8389589363..a499ff076b 100644 --- a/io_u.c +++ b/io_u.c @@ -2113,7 +2113,6 @@ static void io_completed(struct thread_data *td, struct io_u **io_u_ptr, if (ddir_sync(ddir)) { if (io_u->error) goto error; - td->last_was_sync = true; if (f) { f->first_write = -1ULL; f->last_write = -1ULL; @@ -2123,7 +2122,6 @@ static void io_completed(struct thread_data *td, struct io_u **io_u_ptr, return; } - td->last_was_sync = false; td->last_ddir = ddir; if (!io_u->error && ddir_rw(ddir)) { diff --git a/ioengines.c b/ioengines.c index 87cc2286e0..6b81dc772a 100644 --- a/ioengines.c +++ b/ioengines.c @@ -436,6 +436,8 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u) io_u_mark_depth(td, 1); td->ts.total_io_u[io_u->ddir]++; } + + td->last_was_sync = ddir_sync(io_u->ddir); } else if (ret == FIO_Q_QUEUED) { td->io_u_queued++; @@ -445,6 +447,8 @@ enum fio_q_status td_io_queue(struct thread_data *td, struct io_u *io_u) if (td->io_u_queued >= td->o.iodepth_batch) td_io_commit(td); + + td->last_was_sync = ddir_sync(io_u->ddir); } if (!td_ioengine_flagged(td, FIO_SYNCIO) &&