On Sat, Nov 24, 2012 at 11:24:08PM +0100, Pawel Jakub Dawidek wrote:
> On Fri, Nov 16, 2012 at 08:25:06AM +0000, Konstantin Belousov wrote:
> > Author: kib
> > Date: Fri Nov 16 08:25:06 2012
> > New Revision: 243142
> > URL: http://svnweb.freebsd.org/changeset/base/243142
> > 
> > Log:
> >   In pget(9), if PGET_NOTWEXIT flag is not specified, also search the
> >   zombie list for the pid. This allows several kern.proc sysctls to
> >   report useful information for zombies.
> >   
> >   Hold the allproc_lock around all searches instead of relocking it.
> >   Remove private pfind_locked() from the new nfs client code.
> >   
> >   Requested and reviewed by:        pjd
> >   Tested by:        pho
> >   MFC after:        3 weeks
> [...]
> > @@ -364,12 +374,16 @@ pget(pid_t pid, int flags, struct proc *
> >     struct proc *p;
> >     int error;
> >  
> > +   sx_slock(&allproc_lock);
> >     if (pid <= PID_MAX)
> > -           p = pfind(pid);
> > +           p = pfind_locked(pid);
> >     else if ((flags & PGET_NOTID) == 0)
> > -           p = pfind_tid(pid);
> > +           p = pfind_tid_locked(pid);
> >     else
> >             p = NULL;
> > +   if (p == NULL && (flags & PGET_NOTWEXIT) == 0)
> > +           p = zpfind_locked(pid);
> > +   sx_sunlock(&allproc_lock);
> >     if (p == NULL)
> >             return (ESRCH);
> 
> I think we should move zpfind_locked() under 'pid <= PID_MAX':
> 
>       sx_slock(&allproc_lock);
>       if (pid <= PID_MAX) {
>               p = pfind_locked(pid);
>               if (p == NULL && (flags & PGET_NOTWEXIT) == 0)
>                       p = zpfind_locked(pid);
>       } else if ((flags & PGET_NOTID) == 0) {
>               p = pfind_tid_locked(pid);
>       } else {
>               p = NULL;
>       }
>       sx_sunlock(&allproc_lock);
>       if (p == NULL)
>               return (ESRCH);
> 

Yes, I agree. Please remove {} for one-line blocks.

Attachment: pgpSMkdxU6dQt.pgp
Description: PGP signature

Reply via email to