PERFORCE change 114200 for review

Roman Divacky rdivacky at FreeBSD.org
Wed Feb 7 18:58:14 UTC 2007


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

Change 114200 by rdivacky at rdivacky_witten on 2007/02/07 18:57:25

	Move the free() out of the emul_shared_lock coverage as its not
	sleepable lock anymore.

Affected files ...

.. //depot/projects/linuxolator/src/sys/compat/linux/linux_emul.c#35 edit

Differences ...

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

@@ -187,9 +187,11 @@
 	LIST_REMOVE(em, threads);
 
 	em->shared->refs--;
-	if (em->shared->refs == 0)
+	if (em->shared->refs == 0) {
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 		free(em->shared, M_LINUX);
-	EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+	} else	
+		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 	if (child_clear_tid != NULL) {
 		struct linux_sys_futex_args cup;
@@ -274,9 +276,11 @@
 		PROC_UNLOCK(p);
 
 		em->shared->refs--;
-		if (em->shared->refs == 0)
+		if (em->shared->refs == 0) {
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 			free(em->shared, M_LINUX);
-		EMUL_SHARED_WUNLOCK(&emul_shared_lock);
+		} else
+			EMUL_SHARED_WUNLOCK(&emul_shared_lock);
 
 		free(em, M_LINUX);
 	}


More information about the p4-projects mailing list