X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.c;h=7df57aa804316a01efe1422e0d924dfa77b82f65;hp=a35aafd2d947617f4da588c11752f3e849f71a54;hb=de8f6de97438d5664cd8765e60102b9109a273e2;hpb=9b7e600ddb531fd359322bbc14e358c10761fe57 diff --git a/io_u.c b/io_u.c index a35aafd2..7df57aa8 100644 --- a/io_u.c +++ b/io_u.c @@ -1136,10 +1136,9 @@ struct io_u *__get_io_u(struct thread_data *td) again: if (!io_u_rempty(&td->io_u_requeues)) io_u = io_u_rpop(&td->io_u_requeues); - else if (!io_u_qempty(&td->io_u_freelist)) + else if (!io_u_qempty(&td->io_u_freelist)) { io_u = io_u_qpop(&td->io_u_freelist); - if (io_u) { io_u->buflen = 0; io_u->resid = 0; io_u->file = NULL; @@ -1413,6 +1412,9 @@ static void account_io_completion(struct thread_data *td, struct io_u *io_u, add_bw_sample(td, idx, bytes, &icd->time); add_iops_sample(td, idx, bytes, &icd->time); + + if (td->o.number_ios && !--td->o.number_ios) + td->done = 1; } static long long usec_for_io(struct thread_data *td, enum fio_ddir ddir)