1-3 are relatively easy. 2/3 is rather a cleanup, but it's better to throw it out of the equation, makes life easier. 4/4 removes the park/unpark dance for cancellations, and fixes a couple of issues (will send one test later). Signals in io_sq_thread() add troubles adding more cases to think about and care about races b/w dying SQPOLL task, dying ctxs and going away userspace tasks. Pavel Begunkov (4): io_uring: cancel deferred requests in try_cancel io_uring: remove useless ->startup completion io_uring: prevent racy sqd->thread checks io_uring: cancel sqpoll via task_work fs/io_uring.c | 195 +++++++++++++++++++++++++------------------------- 1 file changed, 99 insertions(+), 96 deletions(-) -- 2.24.0