Skip to content

Commit dae68ff

Browse files
committed
Merge branch 'io_uring-6.17' into for-next
* io_uring-6.17: io_uring/io-wq: add check free worker before create new worker
2 parents 1cd2630 + 9d83e1f commit dae68ff

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

io_uring/io-wq.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,13 @@ static void create_worker_cb(struct callback_head *cb)
357357
worker = container_of(cb, struct io_worker, create_work);
358358
wq = worker->wq;
359359
acct = worker->acct;
360+
361+
rcu_read_lock();
362+
do_create = !io_acct_activate_free_worker(acct);
363+
rcu_read_unlock();
364+
if (!do_create)
365+
goto no_need_create;
366+
360367
raw_spin_lock(&acct->workers_lock);
361368

362369
if (acct->nr_workers < acct->max_workers) {
@@ -367,6 +374,7 @@ static void create_worker_cb(struct callback_head *cb)
367374
if (do_create) {
368375
create_io_worker(wq, acct);
369376
} else {
377+
no_need_create:
370378
atomic_dec(&acct->nr_running);
371379
io_worker_ref_put(wq);
372380
}

0 commit comments

Comments
 (0)