io_uring: don't do extra EXITING cancellations
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 22 Mar 2021 01:58:25 +0000 (01:58 +0000)
committerJens Axboe <axboe@kernel.dk>
Sun, 11 Apr 2021 23:41:59 +0000 (17:41 -0600)
io_match_task() matches all requests with PF_EXITING task, even though
those may be valid requests. It was necessary for SQPOLL cancellation,
but now it kills all requests before exiting via
io_uring_cancel_sqpoll(), so it's not needed.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c

index a152c0f..b33cc29 100644 (file)
@@ -1079,12 +1079,8 @@ static bool io_match_task(struct io_kiocb *head,
 {
        struct io_kiocb *req;
 
-       if (task && head->task != task) {
-               /* in terms of cancelation, always match if req task is dead */
-               if (head->task->flags & PF_EXITING)
-                       return true;
+       if (task && head->task != task)
                return false;
-       }
        if (!files)
                return true;