From owner-svn-src-user@FreeBSD.ORG  Wed Dec  7 00:07:57 2011
Return-Path: <owner-svn-src-user@FreeBSD.ORG>
Delivered-To: svn-src-user@freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id A2CA31065672;
	Wed,  7 Dec 2011 00:07:57 +0000 (UTC)
	(envelope-from attilio@FreeBSD.org)
Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c])
	by mx1.freebsd.org (Postfix) with ESMTP id 7932E8FC12;
	Wed,  7 Dec 2011 00:07:57 +0000 (UTC)
Received: from svn.freebsd.org (localhost [127.0.0.1])
	by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id pB707vQp013859;
	Wed, 7 Dec 2011 00:07:57 GMT (envelope-from attilio@svn.freebsd.org)
Received: (from attilio@localhost)
	by svn.freebsd.org (8.14.4/8.14.4/Submit) id pB707v11013856;
	Wed, 7 Dec 2011 00:07:57 GMT (envelope-from attilio@svn.freebsd.org)
Message-Id: <201112070007.pB707v11013856@svn.freebsd.org>
From: Attilio Rao <attilio@FreeBSD.org>
Date: Wed, 7 Dec 2011 00:07:57 +0000 (UTC)
To: src-committers@freebsd.org, svn-src-user@freebsd.org
X-SVN-Group: user
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: 
Subject: svn commit: r228315 - user/attilio/vmcontention/sys/fs/tmpfs
X-BeenThere: svn-src-user@freebsd.org
X-Mailman-Version: 2.1.5
Precedence: list
List-Id: "SVN commit messages for the experimental &quot; user&quot;
	src tree" <svn-src-user.freebsd.org>
List-Unsubscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/svn-src-user>
List-Post: <mailto:svn-src-user@freebsd.org>
List-Help: <mailto:svn-src-user-request@freebsd.org?subject=help>
List-Subscribe: <http://lists.freebsd.org/mailman/listinfo/svn-src-user>,
	<mailto:svn-src-user-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Wed, 07 Dec 2011 00:07:57 -0000

Author: attilio
Date: Wed Dec  7 00:07:57 2011
New Revision: 228315
URL: http://svn.freebsd.org/changeset/base/228315

Log:
  Fix tmpfs to build with vmcontention branch.

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

Modified: user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_fifoops.c
==============================================================================
--- user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_fifoops.c	Tue Dec  6 22:57:48 2011	(r228314)
+++ user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_fifoops.c	Wed Dec  7 00:07:57 2011	(r228315)
@@ -39,6 +39,7 @@
 #include <sys/param.h>
 #include <sys/filedesc.h>
 #include <sys/proc.h>
+#include <sys/systm.h>
 #include <sys/vnode.h>
 
 #include <vm/vm.h>

Modified: user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c
==============================================================================
--- user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c	Tue Dec  6 22:57:48 2011	(r228314)
+++ user/attilio/vmcontention/sys/fs/tmpfs/tmpfs_vnops.c	Wed Dec  7 00:07:57 2011	(r228315)
@@ -505,11 +505,14 @@ tmpfs_mappedread(vm_object_t vobj, vm_ob
 	offset = addr & PAGE_MASK;
 	tlen = MIN(PAGE_SIZE - offset, len);
 
-	if ((vobj == NULL) ||
-	    (vobj->resident_page_count == 0 && vobj->cache == NULL))
+	if (vobj == NULL)
 		goto nocache;
 
 	VM_OBJECT_LOCK(vobj);
+	if (vobj->cached_page_count == 0) {
+		VM_OBJECT_UNLOCK(vobj);
+		goto nocache;
+	}
 lookupvpg:
 	if (((m = vm_page_lookup(vobj, idx)) != NULL) &&
 	    vm_page_is_valid(m, offset, tlen)) {
@@ -633,13 +636,17 @@ tmpfs_mappedwrite(vm_object_t vobj, vm_o
 	offset = addr & PAGE_MASK;
 	tlen = MIN(PAGE_SIZE - offset, len);
 
-	if ((vobj == NULL) ||
-	    (vobj->resident_page_count == 0 && vobj->cache == NULL)) {
+	if (vobj == NULL) {
 		vpg = NULL;
 		goto nocache;
 	}
 
 	VM_OBJECT_LOCK(vobj);
+	if (vobj->cached_page_count == 0) {
+		VM_OBJECT_UNLOCK(vobj);
+		vpg = NULL;
+		goto nocache;
+	}
 lookupvpg:
 	if (((vpg = vm_page_lookup(vobj, idx)) != NULL) &&
 	    vm_page_is_valid(vpg, offset, tlen)) {
@@ -657,8 +664,6 @@ lookupvpg:
 		VM_OBJECT_UNLOCK(vobj);
 		error = uiomove_fromphys(&vpg, offset, tlen, uio);
 	} else {
-		if (__predict_false(vobj->cache != NULL))
-			vm_page_cache_free(vobj, idx, idx + 1);
 		VM_OBJECT_UNLOCK(vobj);
 		vpg = NULL;
 	}