io-wq: simplify worker exiting
authorPavel Begunkov <asml.silence@gmail.com>
Mon, 14 Jun 2021 01:36:17 +0000 (02:36 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 14 Jun 2021 14:23:13 +0000 (08:23 -0600)
io_worker_handle_work() already takes care of the empty list case and
releases spinlock, so get rid of ugly conditional unlocking and
unconditionally call handle_work()

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/7521e485677f381036676943e876a0afecc23017.1623634181.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io-wq.c

index 8c13e23..2c37776 100644 (file)
@@ -565,10 +565,7 @@ loop:
 
        if (test_bit(IO_WQ_BIT_EXIT, &wq->state)) {
                raw_spin_lock_irq(&wqe->lock);
-               if (!wq_list_empty(&wqe->work_list))
-                       io_worker_handle_work(worker);
-               else
-                       raw_spin_unlock_irq(&wqe->lock);
+               io_worker_handle_work(worker);
        }
 
        io_worker_exit(worker);