PERFORCE change 112534 for review

Roman Divacky rdivacky at FreeBSD.org
Thu Jan 4 23:54:06 PST 2007


http://perforce.freebsd.org/chv.cgi?CH=112534

Change 112534 by rdivacky at rdivacky_witten on 2007/01/05 07:53:57

	Dont lock em in a case of just using em->shared->group_pid because
	the group_pid never changes.

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linux/linux_misc.c#50 edit
.. //depot/projects/linuxolator/src/sys/compat/linux/linux_signal.c#9 edit

Differences ...

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

@@ -1448,10 +1448,9 @@
 #endif
 
 	if (linux_use26(td)) {
-		em = em_find(td->td_proc, EMUL_DOLOCK);
+		em = em_find(td->td_proc, EMUL_DONTLOCK);
 		KASSERT(em != NULL, ("getpid: emuldata not found.\n"));
 		td->td_retval[0] = em->shared->group_pid;
-		EMUL_UNLOCK(&emul_lock);
 	} else {
 		td->td_retval[0] = td->td_proc->p_pid;
 	}
@@ -1490,7 +1489,7 @@
 		return (0);
 	}
 
-	em = em_find(td->td_proc, EMUL_DOLOCK);
+	em = em_find(td->td_proc, EMUL_DONTLOCK);
 
 	KASSERT(em != NULL, ("getppid: process emuldata not found.\n"));
 
@@ -1519,7 +1518,6 @@
 	} else
 		td->td_retval[0] = pp->p_pid;
 
-	EMUL_UNLOCK(&emul_lock);
 	PROC_UNLOCK(pp);
 
 	return (0);

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

@@ -561,7 +561,7 @@
 
 	PROC_UNLOCK(p);
 
-	em = em_find(p, EMUL_DOLOCK);
+	em = em_find(p, EMUL_DONTLOCK);
 
 	if (em == NULL) {
 #ifdef DEBUG
@@ -573,8 +573,6 @@
 	if (em->shared->group_pid != args->tgid)
 	   	return ESRCH;
 
-	EMUL_UNLOCK(&emul_lock);
-
 	return linux_kill(td, &ka);
 }
 


More information about the p4-projects mailing list