]> err.no Git - linux-2.6/blobdiff - fs/signalfd.c
[CIFS] named pipe support (part 2)
[linux-2.6] / fs / signalfd.c
index f1da89203a9aeea3108fe9270169c501df821129..7b941abbcde09401404a73c5298b73611eea23da 100644 (file)
@@ -133,7 +133,8 @@ static unsigned int signalfd_poll(struct file *file, poll_table *wait)
         * the peer disconnects.
         */
        if (signalfd_lock(ctx, &lk)) {
-               if (next_signal(&lk.tsk->pending, &ctx->sigmask) > 0 ||
+               if ((lk.tsk == current &&
+                    next_signal(&lk.tsk->pending, &ctx->sigmask) > 0) ||
                    next_signal(&lk.tsk->signal->shared_pending,
                                &ctx->sigmask) > 0)
                        events |= POLLIN;
@@ -319,7 +320,7 @@ asmlinkage long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemas
 
        if (sizemask != sizeof(sigset_t) ||
            copy_from_user(&sigmask, user_mask, sizeof(sigmask)))
-               return error = -EINVAL;
+               return -EINVAL;
        sigdelsetmask(&sigmask, sigmask(SIGKILL) | sigmask(SIGSTOP));
        signotset(&sigmask);