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 <jens.axboe@oracle.com>
diff --git a/fio.c b/fio.c
index bb26062..4927f1c 100644
--- a/fio.c
+++ b/fio.c
@@ -442,18 +442,17 @@
 	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 @@
 		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.