summaryrefslogtreecommitdiffstats
path: root/io_uring
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2022-12-07 03:53:27 +0000
committerJens Axboe <axboe@kernel.dk>2022-12-07 06:47:13 -0700
commit4c979eaefa4356d385b7c7d2877dc04d7fe88969 (patch)
tree7f91b9dd05d60c31cd5a9c202f63a5893c611e86 /io_uring
parentef0ec1ad03119b8b46b035dad42bca7d6da7c2e5 (diff)
downloadlinux-4c979eaefa4356d385b7c7d2877dc04d7fe88969.tar.gz
linux-4c979eaefa4356d385b7c7d2877dc04d7fe88969.tar.bz2
linux-4c979eaefa4356d385b7c7d2877dc04d7fe88969.zip
io_uring: improve io_double_lock_ctx fail handling
msg_ring will fail the request if it can't lock rings, instead punt it to io-wq as was originally intended. Cc: stable@vger.kernel.org Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/4697f05afcc37df5c8f89e2fe6d9c7c19f0241f9.1670384893.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring')
-rw-r--r--io_uring/msg_ring.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/io_uring/msg_ring.c b/io_uring/msg_ring.c
index 615c85e164ab..c7d6586164ca 100644
--- a/io_uring/msg_ring.c
+++ b/io_uring/msg_ring.c
@@ -164,6 +164,8 @@ int io_msg_ring(struct io_kiocb *req, unsigned int issue_flags)
}
done:
+ if (ret == -EAGAIN)
+ return -EAGAIN;
if (ret < 0)
req_set_fail(req);
io_req_set_res(req, ret, 0);