signals: __group_complete_signal: cache the value of p->signal
authorOleg Nesterov <oleg@tv-sign.ru>
Wed, 30 Apr 2008 07:52:49 +0000 (00:52 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 30 Apr 2008 15:29:35 +0000 (08:29 -0700)
Cosmetic, cache p->signal to make the code a bit more readable.

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/signal.c

index 8259262eaa6047596efb285d843ef245269adf18..2a06f2441805e268bab54af2246246dbb6084c1a 100644 (file)
@@ -842,6 +842,7 @@ static inline int wants_signal(int sig, struct task_struct *p)
 static void
 __group_complete_signal(int sig, struct task_struct *p)
 {
+       struct signal_struct *signal = p->signal;
        struct task_struct *t;
 
        /*
@@ -862,14 +863,14 @@ __group_complete_signal(int sig, struct task_struct *p)
                /*
                 * Otherwise try to find a suitable thread.
                 */
-               t = p->signal->curr_target;
+               t = signal->curr_target;
                if (t == NULL)
                        /* restart balancing at this thread */
-                       t = p->signal->curr_target = p;
+                       t = signal->curr_target = p;
 
                while (!wants_signal(sig, t)) {
                        t = next_thread(t);
-                       if (t == p->signal->curr_target)
+                       if (t == signal->curr_target)
                                /*
                                 * No thread needs to be woken.
                                 * Any eligible threads will see
@@ -877,14 +878,14 @@ __group_complete_signal(int sig, struct task_struct *p)
                                 */
                                return;
                }
-               p->signal->curr_target = t;
+               signal->curr_target = t;
        }
 
        /*
         * Found a killable thread.  If the signal will be fatal,
         * then start taking the whole group down immediately.
         */
-       if (sig_fatal(p, sig) && !(p->signal->flags & SIGNAL_GROUP_EXIT) &&
+       if (sig_fatal(p, sig) && !(signal->flags & SIGNAL_GROUP_EXIT) &&
            !sigismember(&t->real_blocked, sig) &&
            (sig == SIGKILL || !(t->ptrace & PT_PTRACED))) {
                /*
@@ -897,9 +898,9 @@ __group_complete_signal(int sig, struct task_struct *p)
                         * running and doing things after a slower
                         * thread has the fatal signal pending.
                         */
-                       p->signal->flags = SIGNAL_GROUP_EXIT;
-                       p->signal->group_exit_code = sig;
-                       p->signal->group_stop_count = 0;
+                       signal->flags = SIGNAL_GROUP_EXIT;
+                       signal->group_exit_code = sig;
+                       signal->group_stop_count = 0;
                        t = p;
                        do {
                                sigaddset(&t->pending.signal, SIGKILL);