diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-19 21:00:51 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-06-19 21:00:51 +0000 |
commit | 6d03a247468059b0e59c821ef39e6762d4d6fc30 (patch) | |
tree | 17b9c00de2c62e68c965c742cdbc206f77a375da /io_uring/io-wq.c | |
parent | Releasing progress-linux version 6.8.12-1~progress7.99u1. (diff) | |
download | linux-6d03a247468059b0e59c821ef39e6762d4d6fc30.tar.xz linux-6d03a247468059b0e59c821ef39e6762d4d6fc30.zip |
Merging upstream version 6.9.2.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'io_uring/io-wq.c')
-rw-r--r-- | io_uring/io-wq.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/io_uring/io-wq.c b/io_uring/io-wq.c index 318ed067db..522196dfb0 100644 --- a/io_uring/io-wq.c +++ b/io_uring/io-wq.c @@ -564,7 +564,10 @@ static void io_worker_handle_work(struct io_wq_acct *acct, * clear the stalled flag. */ work = io_get_next_work(acct, worker); + raw_spin_unlock(&acct->lock); if (work) { + __io_worker_busy(wq, worker); + /* * Make sure cancelation can find this, even before * it becomes the active work. That avoids a window @@ -575,15 +578,9 @@ static void io_worker_handle_work(struct io_wq_acct *acct, raw_spin_lock(&worker->lock); worker->next_work = work; raw_spin_unlock(&worker->lock); - } - - raw_spin_unlock(&acct->lock); - - if (!work) + } else { break; - - __io_worker_busy(wq, worker); - + } io_assign_current_work(worker, work); __set_current_state(TASK_RUNNING); |