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