X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=io_u.c;h=7df57aa804316a01efe1422e0d924dfa77b82f65;hb=cecbfd478e880f4645ff8a3bc2d87335d9e3f4b9;hp=6537c90cf0a0b8208fbc101c460ca9fef559844c;hpb=6aca9b3d1042bef94958ebee0656755a91695f4b;p=fio.git diff --git a/io_u.c b/io_u.c index 6537c90c..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; @@ -1412,7 +1411,10 @@ static void account_io_completion(struct thread_data *td, struct io_u *io_u, if (!td->o.disable_bw) add_bw_sample(td, idx, bytes, &icd->time); - add_iops_sample(td, idx, &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)