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

Matt Fleming
2011-08-16T20:29:50Z

On Tue, 2011-08-16 at 19:47 +0200, Oleg Nesterov wrote:
> 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 ;)

Whoops! I fixed that and added your Acked-by. Thanks!

--
Matt Fleming, Intel Open Source Technology Center