projects
/
linux-2.6-microblaze.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'for-5.13/io_uring-2021-04-27' of git://git.kernel.dk/linux-block
[linux-2.6-microblaze.git]
/
fs
/
io_uring.c
diff --git
a/fs/io_uring.c
b/fs/io_uring.c
index
63ff705
..
360f813
100644
(file)
--- a/
fs/io_uring.c
+++ b/
fs/io_uring.c
@@
-6822,6
+6822,9
@@
static int io_sq_thread(void *data)
current->flags |= PF_NO_SETAFFINITY;
mutex_lock(&sqd->lock);
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;
while (!test_bit(IO_SQ_THREAD_SHOULD_STOP, &sqd->state)) {
int ret;
bool cap_entries, sqt_spin, needs_sched;
@@
-6838,10
+6841,10
@@
static int io_sq_thread(void *data)
}
cond_resched();
mutex_lock(&sqd->lock);
}
cond_resched();
mutex_lock(&sqd->lock);
- if (did_sig)
- break;
io_run_task_work();
io_run_task_work_head(&sqd->park_task_work);
io_run_task_work();
io_run_task_work_head(&sqd->park_task_work);
+ if (did_sig)
+ break;
timeout = jiffies + sqd->sq_thread_idle;
continue;
}
timeout = jiffies + sqd->sq_thread_idle;
continue;
}