diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c index 4e0c8d62dc1f..4aeae3b9f278 100644 --- a/fs/autofs4/waitq.c +++ b/fs/autofs4/waitq.c @@ -476,12 +476,14 @@ int autofs4_wait(struct autofs_sb_info *sbi, */ if (wq->name.name) { /* Block all but "shutdown" signals while waiting */ - sigset_t oldset; + unsigned long shutdown_sigs_mask; unsigned long irqflags; + sigset_t oldset; spin_lock_irqsave(¤t->sighand->siglock, irqflags); oldset = current->blocked; - siginitsetinv(¤t->blocked, SHUTDOWN_SIGS & ~oldset.sig[0]); + shutdown_sigs_mask = SHUTDOWN_SIGS & ~oldset.sig[0]; + siginitsetinv(¤t->blocked, shutdown_sigs_mask); recalc_sigpending(); spin_unlock_irqrestore(¤t->sighand->siglock, irqflags);