1-2 fixes a race for io-wq, can be considered separately 3-7 introduce a mapping from ctx to all tctx, and using that removes file notes, i.e. taking a io_uring file note previously stored in task->io_uring->xa. It's needed because we don't free io_uring ctx until all submitters die/exec, and it became worse after killing ->flush(). There are rough corner in a form of not behaving nicely, I'll address in follow-up patches. 8/8 just a very useful warning. Pavel Begunkov (8): io_uring: cancel-match based on flags io_uring: reliably cancel linked timeouts io_uring: make del_task_file more forgiving io_uring: introduce ctx to tctx back map io_uring: do ctx initiated file note removal io_uring: don't take task ring-file notes io_uring: index io_uring->xa by ctx not file io_uring: warn when ring exit takes too long fs/io_uring.c | 146 ++++++++++++++++++++++++++++++--------- include/linux/io_uring.h | 2 +- 2 files changed, 113 insertions(+), 35 deletions(-) -- 2.24.0