]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - fs/io-wq.c
io_uring/io-wq: kill off now unused IO_WQ_WORK_NO_CANCEL
[mirror_ubuntu-jammy-kernel.git] / fs / io-wq.c
index f72d53848dcbcb15581c674fef266b623cdfb469..2e2f14f42bf22d9e39d0f4bff4a0b59c63bb1bc5 100644 (file)
@@ -36,8 +36,7 @@ enum {
 
 enum {
        IO_WQ_BIT_EXIT          = 0,    /* wq exiting */
-       IO_WQ_BIT_CANCEL        = 1,    /* cancel work on list */
-       IO_WQ_BIT_ERROR         = 2,    /* error on setup */
+       IO_WQ_BIT_ERROR         = 1,    /* error on setup */
 };
 
 enum {
@@ -561,12 +560,6 @@ get_next:
 
                        next_hashed = wq_next_work(work);
                        io_impersonate_work(worker, work);
-                       /*
-                        * OK to set IO_WQ_WORK_CANCEL even for uncancellable
-                        * work, the worker function will do the right thing.
-                        */
-                       if (test_bit(IO_WQ_BIT_CANCEL, &wq->state))
-                               work->flags |= IO_WQ_WORK_CANCEL;
 
                        old_work = work;
                        linked = wq->do_work(work);
@@ -732,12 +725,6 @@ static inline bool io_wqe_need_worker(struct io_wqe *wqe, int index)
        return acct->nr_workers < acct->max_workers;
 }
 
-static bool io_wqe_worker_send_sig(struct io_worker *worker, void *data)
-{
-       send_sig(SIGINT, worker->task, 1);
-       return false;
-}
-
 /*
  * Iterate the passed in list and call the specific function for each
  * worker that isn't exiting
@@ -938,21 +925,6 @@ void io_wq_hash_work(struct io_wq_work *work, void *val)
        work->flags |= (IO_WQ_WORK_HASHED | (bit << IO_WQ_HASH_SHIFT));
 }
 
-void io_wq_cancel_all(struct io_wq *wq)
-{
-       int node;
-
-       set_bit(IO_WQ_BIT_CANCEL, &wq->state);
-
-       rcu_read_lock();
-       for_each_node(node) {
-               struct io_wqe *wqe = wq->wqes[node];
-
-               io_wq_for_each_worker(wqe, io_wqe_worker_send_sig, NULL);
-       }
-       rcu_read_unlock();
-}
-
 struct io_cb_cancel_data {
        work_cancel_fn *fn;
        void *data;
@@ -972,7 +944,6 @@ static bool io_wq_worker_cancel(struct io_worker *worker, void *data)
         */
        spin_lock_irqsave(&worker->lock, flags);
        if (worker->cur_work &&
-           !(worker->cur_work->flags & IO_WQ_WORK_NO_CANCEL) &&
            match->fn(worker->cur_work, match->data)) {
                send_sig(SIGINT, worker->task, 1);
                match->nr_running++;