put_io_u(td, io_u);
return 1;
} else if (ret == FIO_Q_QUEUED) {
- if (io_u_queued_complete(td, 1, NULL))
+ if (io_u_queued_complete(td, 1, NULL) < 0)
return 1;
} else if (ret == FIO_Q_COMPLETED) {
if (io_u->error) {
if (!io_u)
break;
- if (runtime_exceeded(td, &io_u->start_time))
+ if (runtime_exceeded(td, &io_u->start_time)) {
+ put_io_u(td, io_u);
break;
+ }
- if (get_next_verify(td, io_u))
+ if (get_next_verify(td, io_u)) {
+ put_io_u(td, io_u);
break;
+ }
- if (td_io_prep(td, io_u))
+ if (td_io_prep(td, io_u)) {
+ put_io_u(td, io_u);
break;
-
+ }
requeue:
ret = td_io_queue(td, io_u);
goto requeue;
}
ret = io_u_sync_complete(td, io_u, verify_io_u);
- if (ret)
+ if (ret < 0)
break;
continue;
case FIO_Q_QUEUED:
* Reap required number of io units, if any, and do the
* verification on them through the callback handler
*/
- if (io_u_queued_complete(td, min_events, verify_io_u))
+ if (io_u_queued_complete(td, min_events, verify_io_u) < 0)
break;
}