PERFORCE change 114132 for review

Divacky Roman xdivac02 at stud.fit.vutbr.cz
Tue Feb 6 22:50:31 UTC 2007


On Tue, Feb 06, 2007 at 10:43:29PM +0000, Roman Divacky wrote:
> http://perforce.freebsd.org/chv.cgi?CH=114132
> 
> Change 114132 by rdivacky at rdivacky_witten on 2007/02/06 22:43:08
> 
> 	Remove forgotten EMUL_UNLOCK in getppid().
> 
> Affected files ...
> 
> .. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#33 edit
> .. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#55 edit
> 
> Differences ...
> 
> ==== //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#33 (text+ko) ====
> 
> @@ -168,19 +168,20 @@
>  
>  	/* reparent all procs that are not a thread leader to initproc */
>  	if (em->shared->group_pid != p->p_pid) {
> -	   	sx_xlock(&proctree_lock);
> -	   	wakeup(initproc);
> +		child_clear_tid = em->child_clear_tid;
> +		EMUL_UNLOCK(&emul_lock);
> +		sx_xlock(&proctree_lock);
> +		wakeup(initproc);
>  		PROC_LOCK(p);
>  		proc_reparent(p, initproc);
>  		p->p_sigparent = SIGCHLD;
>  		PROC_UNLOCK(p);
> -	   	sx_xunlock(&proctree_lock);
> +		sx_xunlock(&proctree_lock);
> +	} else {
> +		child_clear_tid = em->child_clear_tid;
> +		EMUL_UNLOCK(&emul_lock);	
>  	}
>  
> -	child_clear_tid = em->child_clear_tid;
> -
> -	EMUL_UNLOCK(&emul_lock);
> -
>  	EMUL_SHARED_WLOCK(&emul_shared_lock);
>  	LIST_REMOVE(em, threads);
>  
> 

grrrr.. I accidentally commited the fix for the LOR caused by holding 2 sx locks
(emul_lock and proctree_lock).


More information about the p4-projects mailing list