NFS and recalc_sigpending() semantics?

From: Greg Banks
Date: Wed Oct 27 2004 - 05:46:39 EST


G'day,

Can someone please explain to me why recalc_sigpending() fails
to clear the TIF_SIGPENDING flag if the pending signal is a
coredumping signal like SIGQUIT? Is this deliberate?

I ask because there's code in the NFS client like this:

---> got here because signal_pending() is set <----
spin_lock_irqsave(&current->sighand->siglock, flags);
oldset = current->blocked;
sigfillset(&current->blocked);
recalc_sigpending();
spin_unlock_irqrestore(&current->sighand->siglock, flags);
---> assumes signal_pending() is cleared <----

Have these semantics changed, or has NFS always been broken?

Greg.
--
Greg Banks, R&D Software Engineer, SGI Australian Software Group.
I don't speak for SGI.


-
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/