]> 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)
commitacb053e1893e9e08409faa96d5e556d89d55b13f
tree2b27bdab84603e31011b7aeb19b95b1a18e6934c
parentaa13a515b73d0b95917b5b54ad062fc06d32d536
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