t/io_uring: clean up aio wait loop
[fio.git] / t / io_uring.c
index ffdb5d3db545130f1754466f50b9ae652cde6061..f27a12c7bb26cefe49e224468bc0197f1913795a 100644 (file)
@@ -701,23 +701,21 @@ static void *submitter_aio_fn(void *data)
                }
                prepped = 0;
 
-               if (to_wait) {
+               while (to_wait) {
                        int r;
 
-                       do {
-                               s->calls++;
-                               r = io_getevents(s->aio_ctx, to_wait, to_wait, events, NULL);
-                               if (r < 0) {
-                                       perror("io_getevents");
-                                       break;
-                               } else if (r != to_wait) {
-                                       printf("r=%d, wait=%d\n", r, to_wait);
-                                       break;
-                               }
-                               r = reap_events_aio(s, events, r);
-                               s->reaps += r;
-                               to_wait -= r;
-                       } while (to_wait);
+                       s->calls++;
+                       r = io_getevents(s->aio_ctx, to_wait, to_wait, events, NULL);
+                       if (r < 0) {
+                               perror("io_getevents");
+                               break;
+                       } else if (r != to_wait) {
+                               printf("r=%d, wait=%d\n", r, to_wait);
+                               break;
+                       }
+                       r = reap_events_aio(s, events, r);
+                       s->reaps += r;
+                       to_wait -= r;
                }
        } while (!s->finish);