From dcb4830de5a347dc929148d0e6cb7c4da9eb3a56 Mon Sep 17 00:00:00 2001 From: Radha Ramachandran Date: Tue, 16 Jun 2009 08:31:29 +0200 Subject: [PATCH] Alter the order of checking time exceeded vs getting an io_u 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 --- fio.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/fio.c b/fio.c index bb260628..4927f1c6 100644 --- a/fio.c +++ b/fio.c @@ -442,18 +442,17 @@ static void do_verify(struct thread_data *td) 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; @@ -580,18 +579,17 @@ static void do_io(struct thread_data *td) 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. -- 2.25.1