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>
Mon, 25 Jul 2022 00:39:14 +0000 (18:39 -0600)
commitaffa87db90108d9f017f927bcdab536e32c3915e
treec63ab3539a958e3c15741d34352f5a30fab5deb9
parentd9dee4302a7cbd6c0142dbdf6d150acc7459de0d
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