]> git.itanic.dy.fi Git - linux-stable/commit
io_uring: fix poll_remove stalled req completion
authorPavel Begunkov <asml.silence@gmail.com>
Fri, 15 Mar 2024 15:29:51 +0000 (15:29 +0000)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:17:34 +0000 (18:17 -0400)
commit6d1e391395d42830da3f84eb7ea7e0decf74a751
tree4f7247fff7252f25ccd26a0b67016b1dfa0a8ac0
parent09a1907433865b7c8ee6777e507f5126bdd38c0f
io_uring: fix poll_remove stalled req completion

[ Upstream commit 5e3afe580a9f5ca173a6bd55ffe10948796ef7e5 ]

Taking the ctx lock is not enough to use the deferred request completion
infrastructure, it'll get queued into the list but no one would expect
it there, so it will sit there until next io_submit_flush_completions().
It's hard to care about the cancellation path, so complete it via tw.

Fixes: ef7dfac51d8ed ("io_uring/poll: serialize poll linked timer start with poll removal")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/c446740bc16858f8a2a8dcdce899812f21d15f23.1710514702.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
io_uring/poll.c