diff options
author | Jens Axboe <axboe@kernel.dk> | 2021-02-16 07:17:00 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-02-21 17:25:22 -0700 |
commit | 7c25c0d16ef3c37e49c593ac92f69fa3884d4bb9 (patch) | |
tree | 2fe3fa25ca066312bf514c8e34fba0575db99af7 /fs/io-wq.c | |
parent | 27131549060ee87f1c50c56539b8f6c4c1a4acec (diff) | |
download | linux-7c25c0d16ef3c37e49c593ac92f69fa3884d4bb9.tar.bz2 |
io_uring: remove the need for relying on an io-wq fallback worker
We hit this case when the task is exiting, and we need somewhere to
do background cleanup of requests. Instead of relying on the io-wq
task manager to do this work for us, just stuff it somewhere where
we can safely run it ourselves directly.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'fs/io-wq.c')
-rw-r--r-- | fs/io-wq.c | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/fs/io-wq.c b/fs/io-wq.c index c36bbcd823ce..800b299f9772 100644 --- a/fs/io-wq.c +++ b/fs/io-wq.c @@ -16,7 +16,6 @@ #include <linux/kthread.h> #include <linux/rculist_nulls.h> #include <linux/fs_struct.h> -#include <linux/task_work.h> #include <linux/blk-cgroup.h> #include <linux/audit.h> #include <linux/cpu.h> @@ -775,9 +774,6 @@ static int io_wq_manager(void *data) complete(&wq->done); while (!kthread_should_stop()) { - if (current->task_works) - task_work_run(); - for_each_node(node) { struct io_wqe *wqe = wq->wqes[node]; bool fork_worker[2] = { false, false }; @@ -800,9 +796,6 @@ static int io_wq_manager(void *data) schedule_timeout(HZ); } - if (current->task_works) - task_work_run(); - out: if (refcount_dec_and_test(&wq->refs)) { complete(&wq->done); @@ -1160,11 +1153,6 @@ void io_wq_destroy(struct io_wq *wq) __io_wq_destroy(wq); } -struct task_struct *io_wq_get_task(struct io_wq *wq) -{ - return wq->manager; -} - static bool io_wq_worker_affinity(struct io_worker *worker, void *data) { struct task_struct *task = worker->task; |