]> git.itanic.dy.fi Git - linux-stable/commit
io_uring: fix not released cached task refs
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 9 Jan 2022 00:53:22 +0000 (00:53 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 29 Jan 2022 09:59:24 +0000 (10:59 +0100)
commit9f793ce7b8f5e98a44b18eba06fe6919538ba81c
tree5a525fac8cf47a4ae017e85529df2abcd646d26f
parent5a440ead57de48c2ac66b04b8e07c8730cc0cf0f
io_uring: fix not released cached task refs

commit 3cc7fdb9f90a25ae92250bf9e6cf3b9556b230e9 upstream.

tctx_task_work() may get run after io_uring cancellation and so there
will be no one to put cached in tctx task refs that may have been added
back by tw handlers using inline completion infra, Call
io_uring_drop_tctx_refs() at the end of the main tw handler to release
them.

Cc: stable@vger.kernel.org # 5.15+
Reported-by: Lukas Bulwahn <lukas.bulwahn@gmail.com>
Fixes: e98e49b2bbf7 ("io_uring: extend task put optimisations")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/69f226b35fbdb996ab799a8bbc1c06bf634ccec1.1641688805.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/io_uring.c