PERFORCE change 114132 for review

Roman Divacky rdivacky at FreeBSD.org
Tue Feb 6 22:43:36 UTC 2007


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);
 

==== //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#55 (text+ko) ====

@@ -1502,7 +1502,6 @@
 		printf("getppid: thread group leader not found.\n");
 #endif
 		td->td_retval[0] = 1;
-		EMUL_UNLOCK(&emul_lock);
 		return (0);
 	}
 	pp = p->p_pptr;			/* switch to parent */


More information about the p4-projects mailing list