On Mon, Apr 25, 2022 at 11:25:20AM -0700, Stefan Roesch wrote: >Rather than always use the slower locked path, wire up use of the >deferred completion path that normal CQEs can take. That patch does not do that; patch 5 has what is said here. So bit of rewording here may clear up the commit message. >This reuses the >hash list node for the storage we need to hold the two 64-bit values >that must be passed back. > >Co-developed-by: Jens Axboe >Signed-off-by: Stefan Roesch >Signed-off-by: Jens Axboe >--- > fs/io_uring.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > >diff --git a/fs/io_uring.c b/fs/io_uring.c >index 4c32cf987ef3..bf2b02518332 100644 >--- a/fs/io_uring.c >+++ b/fs/io_uring.c >@@ -964,7 +964,13 @@ struct io_kiocb { > atomic_t poll_refs; > struct io_task_work io_task_work; > /* for polled requests, i.e. IORING_OP_POLL_ADD and async armed poll */ >- struct hlist_node hash_node; >+ union { >+ struct hlist_node hash_node; >+ struct { >+ u64 extra1; >+ u64 extra2; >+ }; >+ }; > /* internal polling, see IORING_FEAT_FAST_POLL */ > struct async_poll *apoll; > /* opcode allocated if it needs to store data for async defer */ >-- >2.30.2 > >