]> git.ipfire.org Git - thirdparty/linux.git/commit
io_uring/cmd: allow multishot polled commands
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 16 Jun 2025 09:46:27 +0000 (10:46 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 23 Jun 2025 15:00:12 +0000 (09:00 -0600)
commitb95575495948a81ac9b0110aa721ea061dd850d9
tree0a9f4e46441d6a0f8aa0dd1406f3bccec57aebec
parent162151889267089bb920609830c35f9272087c3f
io_uring/cmd: allow multishot polled commands

Some commands like timestamping in the next patch can make use of
multishot polling, i.e. REQ_F_APOLL_MULTISHOT. Add support for that,
which is condensed in a single helper called io_cmd_poll_multishot().

The user who wants to continue with a request in a multishot mode must
call the function, and only if it returns 0 the user is free to proceed.
Apart from normal terminal errors, it can also end up with -EIOCBQUEUED,
in which case the user must forward it to the core io_uring. It's
forbidden to use task work while the request is executing in a multishot
mode.

The API is not foolproof, hence it's not exported to modules nor exposed
in public headers.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/bcf97c31659662c72b69fc8fcdf2a88cfc16e430.1750065793.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/uring_cmd.c
io_uring/uring_cmd.h