mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
io-wq: don't retry task_work creation failure on fatal conditions
[ Upstream commita226abcd5d
] We don't want to be retrying task_work creation failure if there's an actual signal pending for the parent task. If we do, then we can enter an infinite loop of perpetually retrying and each retry failing with -ERESTARTNOINTR because a signal is pending. Fixes:3146cba99a
("io-wq: make worker creation resilient against signals") Reported-by: Florian Fischer <florian.fl.fischer@fau.de> Link: https://lore.kernel.org/io-uring/20211202165606.mqryio4yzubl7ms5@pasture/ Tested-by: Florian Fischer <florian.fl.fischer@fau.de> Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
04546f9c9d
commit
0dd89bb8f0
1 changed files with 7 additions and 0 deletions
|
@ -711,6 +711,13 @@ static bool io_wq_work_match_all(struct io_wq_work *work, void *data)
|
|||
|
||||
static inline bool io_should_retry_thread(long err)
|
||||
{
|
||||
/*
|
||||
* Prevent perpetual task_work retry, if the task (or its group) is
|
||||
* exiting.
|
||||
*/
|
||||
if (fatal_signal_pending(current))
|
||||
return false;
|
||||
|
||||
switch (err) {
|
||||
case -EAGAIN:
|
||||
case -ERESTARTSYS:
|
||||
|
|
Loading…
Add table
Reference in a new issue