io_uring: fix multi ctx cancellation
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 20 Jun 2022 00:25:52 +0000 (01:25 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 21 Jul 2022 14:44:29 +0000 (08:44 -0600)
commit31f9a92ac61bb05dc53fb704014b4c8bcd8cf982
tree04dd964c3cb1f2b7001f573680862fa13f570efe
parent0e38e3122212ae4bc6646bb111d010b1232dabd6
io_uring: fix multi ctx cancellation

io_uring_try_cancel_requests() loops until there is nothing left to do
with the ring, however there might be several rings and they might have
dependencies between them, e.g. via poll requests.

Instead of cancelling rings one by one, try to cancel them all and only
then loop over if we still potenially some work to do.

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