]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
io_uring: don't rely on weak ->files references
authorJens Axboe <axboe@kernel.dk>
Sun, 13 Sep 2020 19:09:39 +0000 (13:09 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 1 Nov 2020 11:45:35 +0000 (12:45 +0100)
commit511abceaf0a00cb75f13bdc78f210a7b015e0478
tree84177f6e14ef5f71cef3430a966674b5b44cd373
parentfdc84c9bf1316fb427b4d3c6478766b67370628f
io_uring: don't rely on weak ->files references

commit 0f2122045b946241a9e549c2a76cea54fa58a7ff upstream.

Grab actual references to the files_struct. To avoid circular references
issues due to this, we add a per-task note that keeps track of what
io_uring contexts a task has used. When the tasks execs or exits its
assigned files, we cancel requests based on this tracking.

With that, we can grab proper references to the files table, and no
longer need to rely on stashing away ring_fd and ring_file to check
if the ring_fd may have been closed.

Cc: stable@vger.kernel.org # v5.5+
Reviewed-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/exec.c
fs/file.c
fs/io_uring.c
include/linux/io_uring.h [new file with mode: 0644]
include/linux/sched.h
init/init_task.c
kernel/fork.c