X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=ioengine.h;h=6734c7bb95dfb58a42b7176c1b29f66cae2eb887;hb=2baadb02756d2abaf7ba0fd8bb1cfb6b83f887c1;hp=f7f3ec329c1c71491d16f5b07415f7d87ebe1724;hpb=5ad7be5685088435aca91c23d34fc2411dd38154;p=fio.git diff --git a/ioengine.h b/ioengine.h index f7f3ec32..6734c7bb 100644 --- a/ioengine.h +++ b/ioengine.h @@ -7,6 +7,7 @@ #include "io_ddir.h" #include "debug.h" #include "file.h" +#include "workqueue.h" #ifdef CONFIG_LIBAIO #include @@ -89,7 +90,10 @@ struct io_u { void *engine_data; }; - struct flist_head verify_list; + union { + struct flist_head verify_list; + struct workqueue_work work; + }; /* * Callback for io completion @@ -214,14 +218,14 @@ extern void requeue_io_u(struct thread_data *, struct io_u **); extern int __must_check io_u_sync_complete(struct thread_data *, struct io_u *); extern int __must_check io_u_queued_complete(struct thread_data *, int); extern void io_u_queued(struct thread_data *, struct io_u *); -extern void io_u_quiesce(struct thread_data *); +extern int io_u_quiesce(struct thread_data *); extern void io_u_log_error(struct thread_data *, struct io_u *); extern void io_u_mark_depth(struct thread_data *, unsigned int); extern void fill_io_buffer(struct thread_data *, void *, unsigned int, unsigned int); extern void io_u_fill_buffer(struct thread_data *td, struct io_u *, unsigned int, unsigned int); void io_u_mark_complete(struct thread_data *, unsigned int); void io_u_mark_submit(struct thread_data *, unsigned int); -int queue_full(const struct thread_data *); +bool queue_full(const struct thread_data *); int do_io_u_sync(const struct thread_data *, struct io_u *); int do_io_u_trim(const struct thread_data *, struct io_u *);