ret = bytes_done;
break;
case FIO_Q_QUEUED:
+ /*
+ * if the engine doesn't have a commit hook,
+ * the io_u is really queued. if it does have such
+ * a hook, it has to call io_u_queued() itself.
+ */
+ if (td->io_ops->commit == NULL)
+ io_u_queued(td, io_u);
break;
case FIO_Q_BUSY:
requeue_io_u(td, &io_u);
if (ret < 0 || td->error)
break;
- if (io_u)
- add_slat_sample(td, io_u->ddir, mtime_since(&io_u->start_time, &io_u->issue_time));
-
/*
* See if we need to complete some commands
*/
td->this_io_bytes[0] = td->this_io_bytes[1] = 0;
td->zone_bytes = 0;
+ td->last_was_sync = 0;
+
for_each_file(td, f, i) {
+ f->last_completed_pos = 0;
+
f->last_pos = 0;
if (td->io_ops->flags & FIO_SYNCIO)
lseek(f->fd, SEEK_SET, 0);