lkml.org 
[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 4/8] signal: During coredumps set SIGNAL_GROUP_EXIT in zap_process
    There are only a few places that test SIGNAL_GROUP_EXIT and
    are not also already testing SIGNAL_GROUP_COREDUMP.

    This will not affect the callers of signal_group_exit as zap_process
    also sets group_exit_task so signal_group_exit will continue to return
    true at the same times.

    This does not affect wait_task_zombie as the none of the threads
    wind up in EXIT_ZOMBIE state during a coredump.

    This does not affect oom_kill.c:__task_will_free_mem as
    sig->core_state is tested and handled before SIGNAL_GROUP_EXIT is
    tested for.

    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    ---
    fs/coredump.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    diff --git a/fs/coredump.c b/fs/coredump.c
    index a9c25f20118f..5e5a90de7be3 100644
    --- a/fs/coredump.c
    +++ b/fs/coredump.c
    @@ -347,13 +347,13 @@ static int format_corename(struct core_name *cn, struct coredump_params *cprm,
    return ispipe;
    }

    -static int zap_process(struct task_struct *start, int exit_code, int flags)
    +static int zap_process(struct task_struct *start, int exit_code)
    {
    struct task_struct *t;
    int nr = 0;

    /* Allow SIGKILL, see prepare_signal() */
    - start->signal->flags = SIGNAL_GROUP_COREDUMP | flags;
    + start->signal->flags = SIGNAL_GROUP_EXIT | SIGNAL_GROUP_COREDUMP;
    start->signal->group_exit_code = exit_code;
    start->signal->group_stop_count = 0;

    @@ -378,7 +378,7 @@ static int zap_threads(struct task_struct *tsk,
    if (!signal_group_exit(tsk->signal)) {
    tsk->signal->core_state = core_state;
    tsk->signal->group_exit_task = tsk;
    - nr = zap_process(tsk, exit_code, 0);
    + nr = zap_process(tsk, exit_code);
    clear_tsk_thread_flag(tsk, TIF_SIGPENDING);
    tsk->flags |= PF_DUMPCORE;
    atomic_set(&core_state->nr_threads, nr);
    --
    2.29.2
    \
     
     \ /
      Last update: 2021-12-13 23:55    [W:4.721 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site