io-wq: only exit on fatal signals

If the application uses io_uring and also relies heavily on signals
for communication, that can cause io-wq workers to spuriously exit
just because the parent has a signal pending. Just ignore signals
unless they are fatal.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
Jens Axboe 2021-09-01 11:18:41 -06:00
parent f95dc207b9
commit 15e20db2e0

View file

@ -575,7 +575,9 @@ static int io_wqe_worker(void *data)
if (!get_signal(&ksig)) if (!get_signal(&ksig))
continue; continue;
break; if (fatal_signal_pending(current))
break;
continue;
} }
if (ret) if (ret)
continue; continue;