X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.c;h=45ed354b0f85f4bf2033d07bac1dc279cca618e7;hp=bf903d92c0c912aa05e8a3ecbe4e47bbc53f712c;hb=117868024939609aebd94fff5afacfd29b2f9a6f;hpb=390c40e2cc8a523d06f8dad6a1040fe9a64f3905 diff --git a/fio.c b/fio.c index bf903d92..45ed354b 100644 --- a/fio.c +++ b/fio.c @@ -291,9 +291,8 @@ static void do_verify(struct thread_data *td) } io_u->end_io = verify_io_u; -requeue: - ret = td_io_queue(td, io_u); + ret = td_io_queue(td, io_u); switch (ret) { case FIO_Q_COMPLETED: if (io_u->error) @@ -303,11 +302,12 @@ requeue: io_u->xfer_buflen = io_u->resid; io_u->xfer_buf += bytes; - goto requeue; + requeue_io_u(td, &io_u); + } else { + ret = io_u_sync_complete(td, io_u); + if (ret < 0) + break; } - ret = io_u_sync_complete(td, io_u); - if (ret < 0) - break; continue; case FIO_Q_QUEUED: break; @@ -414,9 +414,8 @@ static void do_io(struct thread_data *td) put_io_u(td, io_u); break; } -requeue: - ret = td_io_queue(td, io_u); + ret = td_io_queue(td, io_u); switch (ret) { case FIO_Q_COMPLETED: if (io_u->error) @@ -426,12 +425,13 @@ requeue: io_u->xfer_buflen = io_u->resid; io_u->xfer_buf += bytes; - goto requeue; + requeue_io_u(td, &io_u); + } else { + fio_gettime(&comp_time, NULL); + bytes_done = io_u_sync_complete(td, io_u); + if (bytes_done < 0) + ret = bytes_done; } - fio_gettime(&comp_time, NULL); - bytes_done = io_u_sync_complete(td, io_u); - if (bytes_done < 0) - ret = bytes_done; break; case FIO_Q_QUEUED: /*