1/4 and 2/4 are for hangs during files unregister. The other two fix not running task works during cancellation. Instead of patching task_work it moves io_uring_files_cancel() before PF_EXITING, should be less intrusive. Was there a particular reasong for doing that in exit_files()? Pavel Begunkov (4): io_uring: add a helper for setting a ref node io_uring: fix io_sqe_files_unregister() hangs kernel/io_uring: cancel io_uring before task works io_uring: cancel requests enqueued as task_work's fs/file.c | 2 -- fs/io_uring.c | 54 ++++++++++++++++++++++++++++++++++----------------- kernel/exit.c | 2 ++ 3 files changed, 38 insertions(+), 20 deletions(-) -- 2.24.0