svn commit: r230297 - stable/9/sys/vm

Konstantin Belousov kib at FreeBSD.org
Wed Jan 18 04:34:19 UTC 2012


Author: kib
Date: Wed Jan 18 04:34:18 2012
New Revision: 230297
URL: http://svn.freebsd.org/changeset/base/230297

Log:
  MFC r229495:
  Do not restart the scan in vm_object_page_clean() on the object
  generation change if requested mode is async.

Modified:
  stable/9/sys/vm/vm_object.c
Directory Properties:
  stable/9/sys/   (props changed)

Modified: stable/9/sys/vm/vm_object.c
==============================================================================
--- stable/9/sys/vm/vm_object.c	Wed Jan 18 04:12:32 2012	(r230296)
+++ stable/9/sys/vm/vm_object.c	Wed Jan 18 04:34:18 2012	(r230297)
@@ -840,8 +840,12 @@ rescan:
 		if (p->valid == 0)
 			continue;
 		if (vm_page_sleep_if_busy(p, TRUE, "vpcwai")) {
-			if (object->generation != curgeneration)
-				goto rescan;
+			if (object->generation != curgeneration) {
+				if ((flags & OBJPC_SYNC) != 0)
+					goto rescan;
+				else
+					clearobjflags = 0;
+			}
 			np = vm_page_find_least(object, pi);
 			continue;
 		}
@@ -850,8 +854,12 @@ rescan:
 
 		n = vm_object_page_collect_flush(object, p, pagerflags,
 		    flags, &clearobjflags);
-		if (object->generation != curgeneration)
-			goto rescan;
+		if (object->generation != curgeneration) {
+			if ((flags & OBJPC_SYNC) != 0)
+				goto rescan;
+			else
+				clearobjflags = 0;
+		}
 
 		/*
 		 * If the VOP_PUTPAGES() did a truncated write, so


More information about the svn-src-all mailing list