Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Apr 2010 19:47:39 +0000 (UTC)
From:      Kip Macy <kmacy@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r207290 - user/kmacy/head_page_lock_2/sys/vm
Message-ID:  <201004271947.o3RJldRU004952@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kmacy
Date: Tue Apr 27 19:47:39 2010
New Revision: 207290
URL: http://svn.freebsd.org/changeset/base/207290

Log:
  add missed unlocks in vm_object_clean

Modified:
  user/kmacy/head_page_lock_2/sys/vm/vm_object.c

Modified: user/kmacy/head_page_lock_2/sys/vm/vm_object.c
==============================================================================
--- user/kmacy/head_page_lock_2/sys/vm/vm_object.c	Tue Apr 27 19:45:16 2010	(r207289)
+++ user/kmacy/head_page_lock_2/sys/vm/vm_object.c	Tue Apr 27 19:47:39 2010	(r207290)
@@ -844,6 +844,7 @@ vm_object_page_clean(vm_object_t object,
 			 * page (i.e. had to sleep) and always unlocks p.
 			 */
 			tscan += vm_object_page_collect_flush(object, p, curgeneration, pagerflags);
+			vm_page_unlock(p);
 		}
 
 		/*
@@ -920,17 +921,21 @@ again:
 		/* Always unlocks p. */
 		n = vm_object_page_collect_flush(object, p,
 			curgeneration, pagerflags);
-		if (n == 0)
+		if (n == 0) {
+			vm_page_unlock(p);
 			goto rescan;
+		}
 
-		if (object->generation != curgeneration)
+		if (object->generation != curgeneration) {
+			vm_page_unlock(p);
 			goto rescan;
-
+		}
 		/*
 		 * Try to optimize the next page.  If we can't we pick up
 		 * our (random) scan where we left off.
 		 */
 		if (msync_flush_flags & MSYNC_FLUSH_SOFTSEQ) {
+			vm_page_unlock(p);
 			if ((p = vm_page_lookup(object, pi + n)) != NULL)
 				goto again;
 		}



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