Retrieve next file to service in get_io_u()

This improves requeue handling, we don't want to inadvertently
skip a file because we requeue an io_u.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
diff --git a/fio.c b/fio.c
index 858d6b8..3c64b7b 100644
--- a/fio.c
+++ b/fio.c
@@ -136,27 +136,6 @@
 	return 0;
 }
 
-static struct fio_file *get_next_file(struct thread_data *td)
-{
-	unsigned int old_next_file = td->next_file;
-	struct fio_file *f;
-
-	do {
-		f = &td->files[td->next_file];
-
-		td->next_file++;
-		if (td->next_file >= td->nr_files)
-			td->next_file = 0;
-
-		if (f->fd != -1)
-			break;
-
-		f = NULL;
-	} while (td->next_file != old_next_file);
-
-	return f;
-}
-
 /*
  * When job exits, we can cancel the in-flight IO if we are using async
  * io. Attempt to do so.
@@ -361,7 +340,6 @@
 {
 	struct timeval s;
 	unsigned long usec;
-	struct fio_file *f;
 	int i, ret = 0;
 
 	td_set_runstate(td, TD_RUNNING);
@@ -375,11 +353,7 @@
 		if (td->terminate)
 			break;
 
-		f = get_next_file(td);
-		if (!f)
-			break;
-
-		io_u = get_io_u(td, f);
+		io_u = get_io_u(td);
 		if (!io_u)
 			break;
 
@@ -479,6 +453,8 @@
 	}
 
 	if (!td->error) {
+		struct fio_file *f;
+
 		if (td->cur_depth)
 			cleanup_pending_aio(td);