Re: [PATCH 37/41] autofs4: Use set_current_blocked()

From: Oleg Nesterov
Date: Tue Aug 16 2011 - 13:50:06 EST


On 08/11, Matt Fleming wrote:
>
> As described in e6fa16ab ("signal: sigprocmask() should do
> retarget_shared_pending()") the modification of current->blocked is
> incorrect as we need to check whether the signal we're about to block
> is pending in the shared queue.

ACK.


cough, can't resist...

> @@ -458,21 +458,16 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
> */
> if (wq->name.name) {
> /* Block all but "shutdown" signals while waiting */
> - sigset_t oldset;
> + sigset_t oldset, blocked;
> unsigned long irqflags;
>
> - spin_lock_irqsave(&current->sighand->siglock, irqflags);
> oldset = current->blocked;
> - siginitsetinv(&current->blocked, SHUTDOWN_SIGS & ~oldset.sig[0]);
> - recalc_sigpending();
> - spin_unlock_irqrestore(&current->sighand->siglock, irqflags);
> + siginitsetinv(&blocked, SHUTDOWN_SIGS & ~oldset.sig[0]);
> + set_current_blocked(&blocked);
>
> wait_event_interruptible(wq->queue, wq->name.name == NULL);
> -
> - spin_lock_irqsave(&current->sighand->siglock, irqflags);
> - current->blocked = oldset;
> - recalc_sigpending();
> - spin_unlock_irqrestore(&current->sighand->siglock, irqflags);
> +

this adds the trailing whitespaces ;)

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/