Re: [PATCH 11/16] signal: prepare for CLD_* notification changes

From: Oleg Nesterov
Date: Mon Dec 20 2010 - 11:28:33 EST


On 12/06, Tejun Heo wrote:
>
> static void do_notify_parent_cldstop(struct task_struct *tsk, int why)
> {
> struct siginfo info;
> unsigned long flags;
> struct task_struct *parent;
> struct sighand_struct *sighand;
> + struct signal_struct *sig;
> + int notify = 0;
> +
> + /*
> + * Determine whether and what to notify. This should be done under
> + * @tsk's siglock.

Hmm... it is not clear why.

> + spin_lock_irqsave(&sighand->siglock, flags);
>
> + switch (why) {
> + case CLD_CONTINUED:
> + case CLD_STOPPED:
> + case CLD_TRAPPED:
> + notify = why;
> + break;
> + }

OK, with the next patches this code checks sig->flags, probably that
is why we take ->siglock. Still I can't understand this so far.
May be the comment could tell more?

> @@ -1640,6 +1684,7 @@ static void do_notify_parent_cldstop(struct task_struct *tsk, int why)
> }
>
> sighand = parent->sighand;
> + sig = parent->signal;

This looks unneeded.

Oleg.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/