I was hitting a case where fio would loop for ever even though the
runtime was exceeded if it had difficulty getting the io_u struct, so
I suggest this change to the code so it wld not loop forever.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
while (!td->terminate) {
int ret2, full;
- io_u = __get_io_u(td);
- if (!io_u)
- break;
-
update_tv_cache(td);
if (runtime_exceeded(td, &td->tv_cache)) {
- put_io_u(td, io_u);
td->terminate = 1;
break;
}
+ io_u = __get_io_u(td);
+ if (!io_u)
+ break;
+
if (get_next_verify(td, io_u)) {
put_io_u(td, io_u);
break;
if (td->terminate)
break;
- io_u = get_io_u(td);
- if (!io_u)
- break;
-
update_tv_cache(td);
if (runtime_exceeded(td, &td->tv_cache)) {
- put_io_u(td, io_u);
td->terminate = 1;
break;
}
+ io_u = get_io_u(td);
+ if (!io_u)
+ break;
+
/*
* Add verification end_io handler, if asked to verify
* a previously written file.