diff options
author | Stefan Roesch <shr@fb.com> | 2022-04-26 11:21:24 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-05-09 06:35:33 -0600 |
commit | 4e5bc0a9a1d0be5b20a0366fbfbe5a99d61c6003 (patch) | |
tree | 3c5c59e89d34342095825888a439807e2a154728 /fs/io_uring.c | |
parent | 7a51e5b44b92686eebd3e1b46b86e1eb4db975db (diff) | |
download | lwn-4e5bc0a9a1d0be5b20a0366fbfbe5a99d61c6003.tar.gz lwn-4e5bc0a9a1d0be5b20a0366fbfbe5a99d61c6003.zip |
io_uring: store add. return values for CQE32
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 <axboe@kernel.dk>
Signed-off-by: Stefan Roesch <shr@fb.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Link: https://lore.kernel.org/r/20220426182134.136504-3-shr@fb.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io_uring.c')
-rw-r--r-- | fs/io_uring.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c index 106a0db56ddb..da91723e8741 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -1003,7 +1003,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 */ |