summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2021-12-17 11:31:46 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2021-12-17 11:31:46 -0800
commitcb29eee3b28c79f26aff9e396a55bf2cb831e1d9 (patch)
tree8bf3f75bb38b5115f43df7acdb84d297ed91225f
parent43d1c6a6395070cb02944d78bc919425ffd3e599 (diff)
parentd800c65c2d4eccebb27ffb7808e842d5b533823c (diff)
Merge tag 'io_uring-5.16-2021-12-17' of git://git.kernel.dk/linux-block
Pull io_uring fix from Jens Axboe: "Just a single fix, fixing an issue with the worker creation change that was merged last week" * tag 'io_uring-5.16-2021-12-17' of git://git.kernel.dk/linux-block: io-wq: drop wqe lock before creating new worker
-rw-r--r--fs/io-wq.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/io-wq.c b/fs/io-wq.c
index 8d2bb818a3bb..5c4f582d6549 100644
--- a/fs/io-wq.c
+++ b/fs/io-wq.c
@@ -395,7 +395,9 @@ static void io_wqe_dec_running(struct io_worker *worker)
if (atomic_dec_and_test(&acct->nr_running) && io_acct_run_queue(acct)) {
atomic_inc(&acct->nr_running);
atomic_inc(&wqe->wq->worker_refs);
+ raw_spin_unlock(&wqe->lock);
io_queue_worker_create(worker, acct, create_worker_cb);
+ raw_spin_lock(&wqe->lock);
}
}