workqueue: add a workqueue_work type
[fio.git] / backend.c
index e5ba66d647018b30d36faa9c1ded9bb8be5d882f..26c1bf559509eacac2e97a3c9fdc620133bd8dc4 100644 (file)
--- a/backend.c
+++ b/backend.c
@@ -934,7 +934,7 @@ static uint64_t do_io(struct thread_data *td)
                        if (td->error)
                                break;
 
-                       ret = workqueue_enqueue(&td->io_wq, io_u);
+                       ret = workqueue_enqueue(&td->io_wq, &io_u->work);
                        if (ret)
                                ret = FIO_Q_QUEUED;
                        else
@@ -1361,8 +1361,9 @@ static uint64_t do_dry_run(struct thread_data *td)
        return td->bytes_done[DDIR_WRITE] + td->bytes_done[DDIR_TRIM];
 }
 
-static void io_workqueue_fn(struct thread_data *td, struct io_u *io_u)
+static void io_workqueue_fn(struct thread_data *td, struct workqueue_work *work)
 {
+       struct io_u *io_u = container_of(work, struct io_u, work);
        const enum fio_ddir ddir = io_u->ddir;
        int ret;