]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: hold 'ctx' reference around task_work queue + execute
authorJens Axboe <axboe@kernel.dk>
Tue, 11 Aug 2020 14:04:14 +0000 (08:04 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 11 Aug 2020 14:09:13 +0000 (08:09 -0600)
commitc08d8ace9aedd3aafaad8fd74e12693d433901bb
tree2b27bdab84603e31011b7aeb19b95b1a18e6934c
parente1a42c2afa1c0d1cf7ce885b4c5af36e199bf8fb
io_uring: hold 'ctx' reference around task_work queue + execute

We're holding the request reference, but we need to go one higher
to ensure that the ctx remains valid after the request has finished.
If the ring is closed with pending task_work inflight, and the
given io_kiocb finishes sync during issue, then we need a reference
to the ring itself around the task_work execution cycle.

Cc: stable@vger.kernel.org # v5.7+
Reported-by: syzbot+9b260fc33297966f5a8e@syzkaller.appspotmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c