X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fautofs%2Froot.c;h=a1ab1c0ed21584ba5a6a0cb5195f2e89c505e7bd;hb=c7b5ebbddf7bcd3651947760f423e3783bbe6573;hp=563706176bd43188036599a264a0819e0ef524fc;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/fs/autofs/root.c b/fs/autofs/root.c index 563706176..a1ab1c0ed 100644 --- a/fs/autofs/root.c +++ b/fs/autofs/root.c @@ -238,9 +238,15 @@ static struct dentry *autofs_root_lookup(struct inode *dir, struct dentry *dentr * a signal. If so we can force a restart.. */ if (dentry->d_flags & DCACHE_AUTOFS_PENDING) { + /* See if we were interrupted */ if (signal_pending(current)) { - unlock_kernel(); - return ERR_PTR(-ERESTARTNOINTR); + sigset_t *sigset = ¤t->pending.signal; + if (sigismember (sigset, SIGKILL) || + sigismember (sigset, SIGQUIT) || + sigismember (sigset, SIGINT)) { + unlock_kernel(); + return ERR_PTR(-ERESTARTNOINTR); + } } } unlock_kernel();