mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-06 10:15:06 -05:00
Merge tag 'io_uring-5.12-2021-04-16' of git://git.kernel.dk/linux-block
Pull io_uring fix from Jens Axboe: "Fix for a potential hang at exit with SQPOLL from Pavel" * tag 'io_uring-5.12-2021-04-16' of git://git.kernel.dk/linux-block: io_uring: fix early sqd_list removal sqpoll hangs
This commit is contained in:
@@ -6754,6 +6754,9 @@ static int io_sq_thread(void *data)
|
||||
current->flags |= PF_NO_SETAFFINITY;
|
||||
|
||||
mutex_lock(&sqd->lock);
|
||||
/* a user may had exited before the thread started */
|
||||
io_run_task_work_head(&sqd->park_task_work);
|
||||
|
||||
while (!test_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state)) {
|
||||
int ret;
|
||||
bool cap_entries, sqt_spin, needs_sched;
|
||||
@@ -6770,10 +6773,10 @@ static int io_sq_thread(void *data)
|
||||
}
|
||||
cond_resched();
|
||||
mutex_lock(&sqd->lock);
|
||||
if (did_sig)
|
||||
break;
|
||||
io_run_task_work();
|
||||
io_run_task_work_head(&sqd->park_task_work);
|
||||
if (did_sig)
|
||||
break;
|
||||
timeout = jiffies + sqd->sq_thread_idle;
|
||||
continue;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user