summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Begunkov <asml.silence@gmail.com>2021-08-09 13:04:06 +0100
committerJens Axboe <axboe@kernel.dk>2021-08-10 17:51:15 -0600
commit96f638c0e22accdd963cf79fee200ccd88e5c281 (patch)
tree9c4d7067002180fc97860ae48eb4c58bf997f678
parentd2424c332cacd05925644c0473f617f81f10d0e7 (diff)
io_uring: remove unnecessary PF_EXITING check
We prefer nornal task_works even if it would fail requests inside. Kill a PF_EXITING check in io_req_task_work_add(), task_work_add() handles well dying tasks, i.e. return error when can't enqueue due to late stages of do_exit(). Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/fc14297e8441cd8f5d1743a2488cf0df09bf48ac.1628471125.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--fs/io_uring.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/fs/io_uring.c b/fs/io_uring.c
index 130211a4e6d6..f8db104b5373 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -2006,8 +2006,6 @@ static void io_req_task_work_add(struct io_kiocb *req)
if (test_bit(0, &tctx->task_state) ||
test_and_set_bit(0, &tctx->task_state))
return;
- if (unlikely(tsk->flags & PF_EXITING))
- goto fail;
/*
* SQPOLL kernel thread doesn't need notification, just a wakeup. For
@@ -2020,7 +2018,7 @@ static void io_req_task_work_add(struct io_kiocb *req)
wake_up_process(tsk);
return;
}
-fail:
+
clear_bit(0, &tctx->task_state);
spin_lock_irqsave(&tctx->task_lock, flags);
node = tctx->task_list.first;