workqueue: don't use ioengine return codes
authorJens Axboe <axboe@fb.com>
Tue, 8 Dec 2015 05:13:22 +0000 (22:13 -0700)
committerJens Axboe <axboe@fb.com>
Tue, 8 Dec 2015 05:13:22 +0000 (22:13 -0700)
Use true/false as return, signaling ok/busy.

Signed-off-by: Jens Axboe <axboe@fb.com>
backend.c
workqueue.c
workqueue.h

index 63d47a29bb63a5ddad78fe8618590db2db499145..e5ba66d647018b30d36faa9c1ded9bb8be5d882f 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -935,6 +935,10 @@ static uint64_t do_io(struct thread_data *td)
                                break;
 
                        ret = workqueue_enqueue(&td->io_wq, io_u);
+                       if (ret)
+                               ret = FIO_Q_QUEUED;
+                       else
+                               ret = FIO_Q_BUSY;
 
                        if (ret == FIO_Q_QUEUED && ddir_rw(ddir)) {
                                td->io_issues[ddir]++;
index 5265a001a621c88cd4469f324481a114d4841e98..82d52df87dc926180f7a6eb0c26cb94d38fb5c23 100644 (file)
@@ -110,9 +110,9 @@ void workqueue_flush(struct workqueue *wq)
 }
 
 /*
- * Must be serialized by caller.
+ * Must be serialized by caller. Returns true for queued, false for busy.
  */
-int workqueue_enqueue(struct workqueue *wq, struct io_u *io_u)
+bool workqueue_enqueue(struct workqueue *wq, struct io_u *io_u)
 {
        struct submit_worker *sw;
 
@@ -125,10 +125,10 @@ int workqueue_enqueue(struct workqueue *wq, struct io_u *io_u)
                pthread_mutex_unlock(&sw->lock);
 
                pthread_cond_signal(&sw->cond);
-               return FIO_Q_QUEUED;
+               return true;
        }
 
-       return FIO_Q_BUSY;
+       return false;
 }
 
 static void handle_list(struct submit_worker *sw, struct flist_head *list)
index 4e924493742e6dc50ed8a1f48aa8b973199a94f3..3a24f254d650fc66d7833bba79e883e2e33fedf7 100644 (file)
@@ -24,7 +24,7 @@ struct workqueue {
 int workqueue_init(struct thread_data *td, struct workqueue *wq, workqueue_fn *fn, unsigned int max_workers);
 void workqueue_exit(struct workqueue *wq);
 
-int workqueue_enqueue(struct workqueue *wq, struct io_u *io_u);
+bool workqueue_enqueue(struct workqueue *wq, struct io_u *io_u);
 void workqueue_flush(struct workqueue *wq);
 
 #endif