On Thu, Apr 14, 2011 at 05:13:28PM -0400, John Baldwin wrote:
> On Sunday, April 10, 2011 1:07:03 pm Konstantin Belousov wrote:
> > Author: kib
> > Date: Sun Apr 10 17:07:02 2011
> > New Revision: 220526
> > URL: http://svn.freebsd.org/changeset/base/220526
> > 
> > Log:
> >   Some callers of proc_reparent() already have the parent process locked.
> >   Detect the situation and avoid process lock recursion.
> >   
> >   Reported by:      Fabian Keil <freebsd-listen fabiankeil de>
> > 
> > Modified:
> >   head/sys/kern/kern_exit.c
> 
> Can we instead assert it is always held and fix callers that don't?  Using 
> locked variables is messy and I'd rather avoid it when possible.  We already 
> require the caller to hold other locks for this operation.
> 
I agree that this is ugly, and proper fix probably would be something else.
E.g. struct proc could grow another field that holds a pointer to the ucred
it is accounted for, and locked with some global lock.

Attachment: pgpu5Tssm2kMl.pgp
Description: PGP signature



Reply via email to