svn commit: r270444 - in head/sys: kern sys

Konstantin Belousov kostikbel at gmail.com
Thu Aug 28 08:21:46 UTC 2014


On Thu, Aug 28, 2014 at 05:30:09AM +0200, Mateusz Guzik wrote:
> @@ -791,6 +791,8 @@ fill_kinfo_proc_only(struct proc *p, struct kinfo_proc *kp)
>  	struct ucred *cred;
>  	struct sigacts *ps;
>  
> +	/* For proc_realparent. */
> +	sx_assert(&proctree_lock, SX_LOCKED);
>  	PROC_LOCK_ASSERT(p, MA_OWNED);
>  	bzero(kp, sizeof(*kp));
>  
> @@ -920,7 +922,9 @@ fill_kinfo_proc_only(struct proc *p, struct kinfo_proc *kp)
>  	kp->ki_acflag = p->p_acflag;
>  	kp->ki_lock = p->p_lock;
>  	if (p->p_pptr)
> -		kp->ki_ppid = p->p_pptr->p_pid;
> +		kp->ki_ppid = proc_realparent(p)->p_pid;
Is the check for p_pptr != NULL still needed for the call to
proc_realparent() ? If yes, I think it indicates a bug in
proc_realparent(), which should incorporate the check, instead of
enforcing it on the callers. It seems to be there for the kernel process
(pid 0).

If the test can be removed, and proc_realparent() called unconditionally,
I suggest to remove assert about proctree_lock at the start of
fill_kinfo_proc_only(), since the check is done in proc_realparent().

Whatever decision is made there, it can be implemented after your
change is landed.  The patch looks fine for me.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20140828/43ef13cb/attachment.sig>


More information about the svn-src-head mailing list