svn commit: r270993 - head/sys/kern

Konstantin Belousov kostikbel at gmail.com
Wed Sep 3 07:16:37 UTC 2014


On Wed, Sep 03, 2014 at 06:25:35AM +0000, Mateusz Guzik wrote:
> Author: mjg
> Date: Wed Sep  3 06:25:34 2014
> New Revision: 270993
> URL: http://svnweb.freebsd.org/changeset/base/270993
> 
> Log:
>   Fix up proc_realparent to always return correct process.
>   
>   Prior to the change it would always return initproc for non-traced processes.
>   
>   This fixes ps apparently always returning 1 as ppid.
>   
>   Pointy hat:	mjg
No, this is my bug.  Thank you for fixing it.  It is a consequence of
the last minute 'safety' change I did.

>   Reported by:	many
>   MFC after:	1 week
I suggest to merge in 3 days.

> 
> Modified:
>   head/sys/kern/kern_exit.c
> 
> Modified: head/sys/kern/kern_exit.c
> ==============================================================================
> --- head/sys/kern/kern_exit.c	Wed Sep  3 05:14:50 2014	(r270992)
> +++ head/sys/kern/kern_exit.c	Wed Sep  3 06:25:34 2014	(r270993)
> @@ -104,8 +104,12 @@ proc_realparent(struct proc *child)
>  
>  	sx_assert(&proctree_lock, SX_LOCKED);
>  	if ((child->p_treeflag & P_TREE_ORPHANED) == 0) {
> -		return (child->p_pptr->p_pid == child->p_oppid ?
> -		    child->p_pptr : initproc);
> +		if (child->p_oppid == 0 ||
> +		    child->p_pptr->p_pid == child->p_oppid)
> +			parent = child->p_pptr;
> +		else
> +			parent = initproc;
> +		return (parent);
>  	}
>  	for (p = child; (p->p_treeflag & P_TREE_FIRST_ORPHAN) == 0;) {
>  		/* Cannot use LIST_PREV(), since the list head is not known. */
-------------- 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/20140903/0e007fab/attachment.sig>


More information about the svn-src-head mailing list