2004-10-27 10:42:15

by Greg Banks

[permalink] [raw]
Subject: NFS and recalc_sigpending() semantics?

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.