Move ->commit() call to td_io_getevents()
authorJens Axboe <jens.axboe@oracle.com>
Mon, 26 Feb 2007 09:40:03 +0000 (10:40 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Mon, 26 Feb 2007 09:40:03 +0000 (10:40 +0100)
If we need to complete some events (min > 0), make sure we
have committed a pending batch.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
io_u.c
ioengines.c

diff --git a/io_u.c b/io_u.c
index 372f46a..ede61a8 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -572,13 +572,7 @@ long io_u_queued_complete(struct thread_data *td, int min_events)
        struct timespec *tvp = NULL;
        int ret;
 
-       if (min_events > 0) {
-               ret = td_io_commit(td);
-               if (ret < 0) {
-                       td_verror(td, -ret, "td_io_commit");
-                       return ret;
-               }
-       } else {
+       if (!min_events) {
                struct timespec ts = { .tv_sec = 0, .tv_nsec = 0, };
 
                tvp = &ts;
index 0b3ec16..727981f 100644 (file)
@@ -182,6 +182,12 @@ int td_io_prep(struct thread_data *td, struct io_u *io_u)
 int td_io_getevents(struct thread_data *td, int min, int max,
                    struct timespec *t)
 {
+       if (min > 0 && td->io_ops->commit) {
+               int r = td->io_ops->commit(td);
+
+               if (r < 0)
+                       return r;
+       }
        if (td->io_ops->getevents)
                return td->io_ops->getevents(td, min, max, t);