Move the iodepth_batch into td_io_queue() instead
[fio.git] / ioengines.c
index 2cc328883d806497b4f9028919cefe360ef3a377..14b15ccd7468e6646a03b962095a97fb55cff74a 100644 (file)
@@ -216,8 +216,16 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
 
        ret = td->io_ops->queue(td, io_u);
 
 
        ret = td->io_ops->queue(td, io_u);
 
-       if (ret == FIO_Q_QUEUED)
+       if (ret == FIO_Q_QUEUED) {
+               int r;
+
                td->io_u_queued++;
                td->io_u_queued++;
+               if (td->io_u_queued > td->iodepth_batch) {
+                       r = td_io_commit(td);
+                       if (r < 0)
+                               return r;
+               }
+       }
 
        if ((td->io_ops->flags & FIO_SYNCIO) == 0) {
                fio_gettime(&io_u->issue_time, NULL);
 
        if ((td->io_ops->flags & FIO_SYNCIO) == 0) {
                fio_gettime(&io_u->issue_time, NULL);