v3 syslet engine support
[fio.git] / fio.c
diff --git a/fio.c b/fio.c
index ae89bb9388d36973c1cad8b36aba1496c52ed206..9594f80582266ce8a8a5794ea9c52fb02a6adb1d 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -197,7 +197,7 @@ requeue:
                put_io_u(td, io_u);
                return 1;
        } else if (ret == FIO_Q_QUEUED) {
-               if (io_u_queued_complete(td, 1, NULL))
+               if (io_u_queued_complete(td, 1, NULL) < 0)
                        return 1;
        } else if (ret == FIO_Q_COMPLETED) {
                if (io_u->error) {
@@ -248,15 +248,20 @@ static void do_verify(struct thread_data *td)
                if (!io_u)
                        break;
 
-               if (runtime_exceeded(td, &io_u->start_time))
+               if (runtime_exceeded(td, &io_u->start_time)) {
+                       put_io_u(td, io_u);
                        break;
+               }
 
-               if (get_next_verify(td, io_u))
+               if (get_next_verify(td, io_u)) {
+                       put_io_u(td, io_u);
                        break;
+               }
 
-               if (td_io_prep(td, io_u))
+               if (td_io_prep(td, io_u)) {
+                       put_io_u(td, io_u);
                        break;
-
+               }
 requeue:
                ret = td_io_queue(td, io_u);
 
@@ -272,7 +277,7 @@ requeue:
                                goto requeue;
                        }
                        ret = io_u_sync_complete(td, io_u, verify_io_u);
-                       if (ret)
+                       if (ret < 0)
                                break;
                        continue;
                case FIO_Q_QUEUED:
@@ -306,7 +311,7 @@ requeue:
                 * Reap required number of io units, if any, and do the
                 * verification on them through the callback handler
                 */
-               if (io_u_queued_complete(td, min_events, verify_io_u))
+               if (io_u_queued_complete(td, min_events, verify_io_u) < 0)
                        break;
        }