X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.c;h=64ff73cd5555b8d4efa0303085f7944cae07544c;hp=518d884f867565cd70b398281797712d0be84755;hb=f754086950c511d48af21aee5c49e9d7985d3d32;hpb=ce35b1ece06ce27ebff111e47c2a6610c311a92b diff --git a/io_u.c b/io_u.c index 518d884f..64ff73cd 100644 --- a/io_u.c +++ b/io_u.c @@ -1285,6 +1285,7 @@ again: io_u->acct_ddir = -1; td->cur_depth++; io_u->flags |= IO_U_F_IN_CUR_DEPTH; + io_u->ipo = NULL; } else if (td->o.verify_async) { /* * We ran out, wait for async verify threads to finish and @@ -1568,6 +1569,15 @@ static void io_completed(struct thread_data *td, struct io_u *io_u, td_io_u_lock(td); assert(io_u->flags & IO_U_F_FLIGHT); io_u->flags &= ~(IO_U_F_FLIGHT | IO_U_F_BUSY_OK); + + /* + * Mark IO ok to verify + */ + if (io_u->ipo) { + io_u->ipo->flags &= ~IP_F_IN_FLIGHT; + write_barrier(); + } + td_io_u_unlock(td); if (ddir_sync(io_u->ddir)) { @@ -1623,12 +1633,6 @@ static void io_completed(struct thread_data *td, struct io_u *io_u, utime_since_now(&td->start)); } - if (td_write(td) && idx == DDIR_WRITE && - td->o.do_verify && - td->o.verify != VERIFY_NONE && - !td->o.experimental_verify) - log_io_piece(td, io_u); - icd->bytes_done[idx] += bytes; if (io_u->end_io) {