• Jens Axboe's avatar
    kernel: allow fork with TIF_NOTIFY_SIGNAL pending · 66ae0d1e
    Jens Axboe authored
    fork() fails if signal_pending() is true, but there are two conditions
    that can lead to that:
    
    1) An actual signal is pending. We want fork to fail for that one, like
       we always have.
    
    2) TIF_NOTIFY_SIGNAL is pending, because the task has pending task_work.
       We don't need to make it fail for that case.
    
    Allow fork() to proceed if just task_work is pending, by changing the
    signal_pending() check to task_sigpending().
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    66ae0d1e
fork.c 75.3 KB