signal: Have prepare_signal detect coredumps using signal->core_state
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 8 Jan 2022 15:34:50 +0000 (09:34 -0600)
committerEric W. Biederman <ebiederm@xmission.com>
Sat, 8 Jan 2022 18:42:35 +0000 (12:42 -0600)
In preparation for removing the flag SIGNAL_GROUP_COREDUMP, change
prepare_signal to test signal->core_state instead of the flag
SIGNAL_GROUP_COREDUMP.

Both fields are protected by siglock and both live in signal_struct so
there are no real tradeoffs here, just a change to which field is
being tested.

Link: https://lkml.kernel.org/r/20211213225350.27481-1-ebiederm@xmission.com
Link: https://lkml.kernel.org/r/875yqu14co.fsf_-_@email.froward.int.ebiederm.org
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
kernel/signal.c

index 8272cac..f95a442 100644 (file)
@@ -906,8 +906,8 @@ static bool prepare_signal(int sig, struct task_struct *p, bool force)
        struct task_struct *t;
        sigset_t flush;
 
-       if (signal->flags & (SIGNAL_GROUP_EXIT | SIGNAL_GROUP_COREDUMP)) {
-               if (!(signal->flags & SIGNAL_GROUP_EXIT))
+       if ((signal->flags & SIGNAL_GROUP_EXIT) || signal->core_state) {
+               if (signal->core_state)
                        return sig == SIGKILL;
                /*
                 * The process is in the middle of dying, nothing to do.