svn commit: r231125 - user/attilio/vmcontention/sys/fs/tmpfs

Attilio Rao attilio at FreeBSD.org
Tue Feb 7 11:25:36 UTC 2012


Author: attilio
Date: Tue Feb  7 11:25:35 2012
New Revision: 231125
URL: http://svn.freebsd.org/changeset/base/231125

Log:
  Revert r230988.

Modified:
  user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c

Modified: user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c	Tue Feb  7 11:24:18 2012	(r231124)
+++ user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c	Tue Feb  7 11:25:35 2012	(r231125)
@@ -648,30 +648,21 @@ tmpfs_mappedwrite(vm_object_t vobj, vm_o
 		goto nocache;
 	}
 lookupvpg:
-	if ((vpg = vm_radix_lookup(&vobj->rtree, idx, VM_RADIX_ANY)) != NULL) {
-		if (vpg->flags & PG_CACHED) {
-			mtx_lock(&vm_page_queue_free_mtx);
-			if (vpg->object == vobj)
-				vm_page_cache_remove(vpg);
-			mtx_unlock(&vm_page_queue_free_mtx);
-			VM_OBJECT_UNLOCK(vobj);
-			vpg = NULL;
-		} else if (vm_page_is_valid(vpg, offset, tlen)) {
-			if ((vpg->oflags & VPO_BUSY) != 0) {
-				/*
-				 * Reference the page before unlocking and
-				 * sleeping so that the page daemon is less
-				 * likely to reclaim it.  
-				 */
-				vm_page_reference(vpg);
-				vm_page_sleep(vpg, "tmfsmw");
-				goto lookupvpg;
-			}
-			vm_page_busy(vpg);
-			vm_page_undirty(vpg);
-			VM_OBJECT_UNLOCK(vobj);
-			error = uiomove_fromphys(&vpg, offset, tlen, uio);
+	if (((vpg = vm_page_lookup(vobj, idx)) != NULL) &&
+	    vm_page_is_valid(vpg, offset, tlen)) {
+		if ((vpg->oflags & VPO_BUSY) != 0) {
+			/*
+			 * Reference the page before unlocking and sleeping so
+			 * that the page daemon is less likely to reclaim it.  
+			 */
+			vm_page_reference(vpg);
+			vm_page_sleep(vpg, "tmfsmw");
+			goto lookupvpg;
 		}
+		vm_page_busy(vpg);
+		vm_page_undirty(vpg);
+		VM_OBJECT_UNLOCK(vobj);
+		error = uiomove_fromphys(&vpg, offset, tlen, uio);
 	} else {
 		VM_OBJECT_UNLOCK(vobj);
 		vpg = NULL;


More information about the svn-src-user mailing list