workqueue: ensure that workqueue_enqueue() can't fail
[fio.git] / backend.c
index 01e0b3ac7cc5909b503f6d35d0a1f8e541215f6f..d39968519fe3680a8ab0fe87716087eb61ad1d6e 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -54,7 +54,6 @@
 #include "lib/getrusage.h"
 #include "idletime.h"
 #include "err.h"
-#include "lib/tp.h"
 #include "workqueue.h"
 #include "lib/mountcheck.h"
 #include "rate-submit.h"
@@ -935,13 +934,10 @@ static uint64_t do_io(struct thread_data *td)
                        if (td->error)
                                break;
 
-                       ret = workqueue_enqueue(&td->io_wq, &io_u->work);
-                       if (ret)
-                               ret = FIO_Q_QUEUED;
-                       else
-                               ret = FIO_Q_BUSY;
+                       workqueue_enqueue(&td->io_wq, &io_u->work);
+                       ret = FIO_Q_QUEUED;
 
-                       if (ret == FIO_Q_QUEUED && ddir_rw(ddir)) {
+                       if (ddir_rw(ddir)) {
                                td->io_issues[ddir]++;
                                td->io_issue_bytes[ddir] += blen;
                                td->rate_io_issue_bytes[ddir] += blen;
@@ -1554,8 +1550,8 @@ static void *thread_main(void *data)
                        goto err;
        }
 
-       if (td->flags & TD_F_COMPRESS_LOG)
-               tp_init(&td->tp_data);
+       if (iolog_compress_init(td))
+               goto err;
 
        fio_verify_init(td);
 
@@ -1661,8 +1657,7 @@ static void *thread_main(void *data)
        if (o->io_submit_mode == IO_MODE_OFFLOAD)
                workqueue_exit(&td->io_wq);
 
-       if (td->flags & TD_F_COMPRESS_LOG)
-               tp_exit(&td->tp_data);
+       iolog_compress_exit(td);
 
        if (o->exec_postrun)
                exec_string(o, o->exec_postrun, (const char *)"postrun");