io_uring: improve io_double_lock_ctx fail handling
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 7 Dec 2022 03:53:27 +0000 (03:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:33:12 +0000 (13:33 +0100)
commit 4c979eaefa4356d385b7c7d2877dc04d7fe88969 upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
io_uring/msg_ring.c

index d8aeac7..a49ccab 100644 (file)
@@ -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);