From b07f6ad1ff4a22c12f9de2592ee35607bf45105f Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Mon, 7 Dec 2015 22:13:22 -0700 Subject: [PATCH] workqueue: don't use ioengine return codes Use true/false as return, signaling ok/busy. Signed-off-by: Jens Axboe --- backend.c | 4 ++++ workqueue.c | 8 ++++---- workqueue.h | 2 +- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/backend.c b/backend.c index 63d47a29..e5ba66d6 100644 --- 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]++; diff --git a/workqueue.c b/workqueue.c index 5265a001..82d52df8 100644 --- a/workqueue.c +++ b/workqueue.c @@ -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) diff --git a/workqueue.h b/workqueue.h index 4e924493..3a24f254 100644 --- a/workqueue.h +++ b/workqueue.h @@ -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 -- 2.25.1