X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=ioengines.c;h=00098d6739daf8da3183476e98927395cba20e8c;hp=07d1d5678986cbe86fd3c87eae1c3a413526ba2a;hb=76b4a7ef86098f6453b9438fe0905a40f01f854b;hpb=b220c6d6f37fc55760d66728f6f9f521ea2f9b46 diff --git a/ioengines.c b/ioengines.c index 07d1d567..00098d67 100644 --- a/ioengines.c +++ b/ioengines.c @@ -294,13 +294,20 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) sizeof(struct timeval)); } - if (ddir_rw(acct_ddir(io_u))) + if (ddir_rw(acct_ddir(io_u))) { td->io_issues[acct_ddir(io_u)]++; + td->io_issue_bytes[acct_ddir(io_u)] += io_u->xfer_buflen; + } ret = td->io_ops->queue(td, io_u); unlock_file(td, io_u->file); + if (ret == FIO_Q_BUSY && ddir_rw(acct_ddir(io_u))) { + td->io_issues[acct_ddir(io_u)]--; + td->io_issue_bytes[acct_ddir(io_u)] -= io_u->xfer_buflen; + } + /* * If an error was seen and the io engine didn't propagate it * back to 'td', do so. @@ -321,7 +328,7 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u) "support direct IO, or iomem_align= is bad.\n"); } - if (!td->io_ops->commit || ddir_trim(io_u->ddir)) { + if (!td->io_ops->commit || io_u->ddir == DDIR_TRIM) { io_u_mark_submit(td, 1); io_u_mark_complete(td, 1); }