io_uring: break out of iowq iopoll on teardown
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 7 Sep 2023 12:50:07 +0000 (13:50 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 7 Sep 2023 15:02:27 +0000 (09:02 -0600)
commit45500dc4e01c167ee063f3dcc22f51ced5b2b1e9
treefbb32c75506c587f3506ff75b5e706f3a9784995
parent76d3ccecfa186af3120e206d62f03db1a94a535f
io_uring: break out of iowq iopoll on teardown

io-wq will retry iopoll even when it failed with -EAGAIN. If that
races with task exit, which sets TIF_NOTIFY_SIGNAL for all its workers,
such workers might potentially infinitely spin retrying iopoll again and
again and each time failing on some allocation / waiting / etc. Don't
keep spinning if io-wq is dying.

Fixes: 561fb04a6a225 ("io_uring: replace workqueue usage with io-wq")
Cc: stable@vger.kernel.org
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/io-wq.c
io_uring/io-wq.h
io_uring/io_uring.c