Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 6 Feb 2007 22:43:29 GMT
From:      Roman Divacky <rdivacky@FreeBSD.org>
To:        Perforce Change Reviews <perforce@FreeBSD.org>
Subject:   PERFORCE change 114132 for review
Message-ID:  <200702062243.l16MhT15091135@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=114132

Change 114132 by rdivacky@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 */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200702062243.l16MhT15091135>