diff options
author | Pavel Begunkov <asml.silence@gmail.com> | 2022-11-17 21:40:16 +0300 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2022-11-17 22:33:33 +0300 |
commit | 91482864768a874c4290ef93b84a78f4f1dac51b (patch) | |
tree | 0220e27b172b21d1e4e687064fae3cb26a115038 /include | |
parent | 539bcb57da2f58886d7d5c17134236b0ec9cd15d (diff) | |
download | linux-91482864768a874c4290ef93b84a78f4f1dac51b.tar.xz |
io_uring: fix multishot accept request leaks
Having REQ_F_POLLED set doesn't guarantee that the request is
executed as a multishot from the polling path. Fortunately for us, if
the code thinks it's multishot issue when it's not, it can only ask to
skip completion so leaking the request. Use issue_flags to mark
multipoll issues.
Cc: stable@vger.kernel.org
Fixes: 390ed29b5e425 ("io_uring: add IORING_ACCEPT_MULTISHOT for accept")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/7700ac57653f2823e30b34dc74da68678c0c5f13.1668710222.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/io_uring.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index 43bc8a2edccf..0ded9e271523 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -16,6 +16,9 @@ enum io_uring_cmd_flags { IO_URING_F_SQE128 = 4, IO_URING_F_CQE32 = 8, IO_URING_F_IOPOLL = 16, + + /* the request is executed from poll, it should not be freed */ + IO_URING_F_MULTISHOT = 32, }; struct io_uring_cmd { |