Module Name:    src
Committed By:   rmind
Date:           Sun Jun 19 02:42:54 UTC 2011

Modified Files:
        src/sys/fs/nilfs: nilfs_vnops.c
        src/sys/nfs: nfs_bio.c
        src/sys/rump/librump/rumpvfs: rumpfs.c
        src/sys/ufs/ufs: ufs_readwrite.c
        src/sys/uvm: uvm_bio.c

Log Message:
- Fix a silly bug: remove umap from uobj in ubc_release() UBC_UNMAP case.
- Use UBC_WANT_UNMAP() consistently.

ARM (PMAP_CACHE_VIVT case) works again.


To generate a diff of this commit:
cvs rdiff -u -r1.12 -r1.13 src/sys/fs/nilfs/nilfs_vnops.c
cvs rdiff -u -r1.186 -r1.187 src/sys/nfs/nfs_bio.c
cvs rdiff -u -r1.95 -r1.96 src/sys/rump/librump/rumpvfs/rumpfs.c
cvs rdiff -u -r1.97 -r1.98 src/sys/ufs/ufs/ufs_readwrite.c
cvs rdiff -u -r1.76 -r1.77 src/sys/uvm/uvm_bio.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/nilfs/nilfs_vnops.c
diff -u src/sys/fs/nilfs/nilfs_vnops.c:1.12 src/sys/fs/nilfs/nilfs_vnops.c:1.13
--- src/sys/fs/nilfs/nilfs_vnops.c:1.12	Sun Jun 12 03:35:53 2011
+++ src/sys/fs/nilfs/nilfs_vnops.c	Sun Jun 19 02:42:53 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: nilfs_vnops.c,v 1.12 2011/06/12 03:35:53 rmind Exp $ */
+/* $NetBSD: nilfs_vnops.c,v 1.13 2011/06/19 02:42:53 rmind Exp $ */
 
 /*
  * Copyright (c) 2008, 2009 Reinoud Zandijk
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifndef lint
-__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.12 2011/06/12 03:35:53 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nilfs_vnops.c,v 1.13 2011/06/19 02:42:53 rmind Exp $");
 #endif /* not lint */
 
 
@@ -144,7 +144,6 @@
 	uint64_t file_size;
 	vsize_t len;
 	int error;
-	int flags;
 
 	DPRINTF(READ, ("nilfs_read called\n"));
 
@@ -168,7 +167,6 @@
 
 	/* read contents using buffercache */
 	uobj = &vp->v_uobj;
-	flags = UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0;
 	error = 0;
 	while (uio->uio_resid > 0) {
 		/* reached end? */
@@ -216,8 +214,7 @@
 	struct nilfs_node      *nilfs_node = VTOI(vp);
 	uint64_t file_size, old_size;
 	vsize_t len;
-	int error;
-	int flags, resid, extended;
+	int error, resid, extended;
 
 	DPRINTF(WRITE, ("nilfs_write called\n"));
 
@@ -263,7 +260,6 @@
 
 	/* write contents using buffercache */
 	uobj = &vp->v_uobj;
-	flags = UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0;
 	resid = uio->uio_resid;
 	error = 0;
 

Index: src/sys/nfs/nfs_bio.c
diff -u src/sys/nfs/nfs_bio.c:1.186 src/sys/nfs/nfs_bio.c:1.187
--- src/sys/nfs/nfs_bio.c:1.186	Sun Jun 12 03:35:59 2011
+++ src/sys/nfs/nfs_bio.c	Sun Jun 19 02:42:53 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: nfs_bio.c,v 1.186 2011/06/12 03:35:59 rmind Exp $	*/
+/*	$NetBSD: nfs_bio.c,v 1.187 2011/06/19 02:42:53 rmind Exp $	*/
 
 /*
  * Copyright (c) 1989, 1993
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: nfs_bio.c,v 1.186 2011/06/12 03:35:59 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: nfs_bio.c,v 1.187 2011/06/19 02:42:53 rmind Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_nfs.h"
@@ -157,9 +157,8 @@
 			}
 			bytelen =
 			    MIN(np->n_size - uio->uio_offset, uio->uio_resid);
-			error = ubc_uiomove(&vp->v_uobj, uio, bytelen,
-			    advice, UBC_READ | UBC_PARTIALOK |
-			    (UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0));
+			error = ubc_uiomove(&vp->v_uobj, uio, bytelen, advice,
+			    UBC_READ | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp));
 			if (error) {
 				/*
 				 * XXXkludge
@@ -532,7 +531,7 @@
 		error = ubc_uiomove(&vp->v_uobj, uio, bytelen,
 		    UVM_ADV_RANDOM, UBC_WRITE | UBC_PARTIALOK |
 		    (overwrite ? UBC_FAULTBUSY : 0) |
-		    (UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0));
+		    UBC_UNMAP_FLAG(vp));
 		if (error) {
 			uvm_vnp_setwritesize(vp, vp->v_size);
 			if (overwrite && np->n_size != oldsize) {

Index: src/sys/rump/librump/rumpvfs/rumpfs.c
diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.95 src/sys/rump/librump/rumpvfs/rumpfs.c:1.96
--- src/sys/rump/librump/rumpvfs/rumpfs.c:1.95	Sun Jun 12 03:35:59 2011
+++ src/sys/rump/librump/rumpvfs/rumpfs.c	Sun Jun 19 02:42:53 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpfs.c,v 1.95 2011/06/12 03:35:59 rmind Exp $	*/
+/*	$NetBSD: rumpfs.c,v 1.96 2011/06/19 02:42:53 rmind Exp $	*/
 
 /*
  * Copyright (c) 2009, 2010, 2011 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.95 2011/06/12 03:35:59 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.96 2011/06/19 02:42:53 rmind Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -1260,7 +1260,7 @@
 		if (chunk == 0)
 			break;
 		error = ubc_uiomove(&vp->v_uobj, uio, chunk, advice,
-		    UBC_READ | UBC_PARTIALOK | UBC_WANT_UNMAP(vp)?UBC_UNMAP:0);
+		    UBC_READ | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp));
 		if (error)
 			break;
 	}
@@ -1353,7 +1353,7 @@
 		if (chunk == 0)
 			break;
 		error = ubc_uiomove(&vp->v_uobj, uio, chunk, advice,
-		    UBC_WRITE | UBC_PARTIALOK | UBC_WANT_UNMAP(vp)?UBC_UNMAP:0);
+		    UBC_WRITE | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp));
 		if (error)
 			break;
 	}

Index: src/sys/ufs/ufs/ufs_readwrite.c
diff -u src/sys/ufs/ufs/ufs_readwrite.c:1.97 src/sys/ufs/ufs/ufs_readwrite.c:1.98
--- src/sys/ufs/ufs/ufs_readwrite.c:1.97	Sun Jun 12 03:36:02 2011
+++ src/sys/ufs/ufs/ufs_readwrite.c	Sun Jun 19 02:42:53 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: ufs_readwrite.c,v 1.97 2011/06/12 03:36:02 rmind Exp $	*/
+/*	$NetBSD: ufs_readwrite.c,v 1.98 2011/06/19 02:42:53 rmind Exp $	*/
 
 /*-
  * Copyright (c) 1993
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.97 2011/06/12 03:36:02 rmind Exp $");
+__KERNEL_RCSID(1, "$NetBSD: ufs_readwrite.c,v 1.98 2011/06/19 02:42:53 rmind Exp $");
 
 #ifdef LFS_READWRITE
 #define	FS			struct lfs
@@ -132,8 +132,7 @@
 			if (bytelen == 0)
 				break;
 			error = ubc_uiomove(&vp->v_uobj, uio, bytelen, advice,
-			    UBC_READ | UBC_PARTIALOK |
-			    (UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0));
+			    UBC_READ | UBC_PARTIALOK | UBC_UNMAP_FLAG(vp));
 			if (error)
 				break;
 		}
@@ -390,9 +389,8 @@
 		 * copy the data.
 		 */
 
-		ubc_flags |= UBC_WANT_UNMAP(vp) ? UBC_UNMAP : 0;
 		error = ubc_uiomove(&vp->v_uobj, uio, bytelen,
-		    IO_ADV_DECODE(ioflag), ubc_flags);
+		    IO_ADV_DECODE(ioflag), ubc_flags | UBC_UNMAP_FLAG(vp));
 
 		/*
 		 * update UVM's notion of the size now that we've

Index: src/sys/uvm/uvm_bio.c
diff -u src/sys/uvm/uvm_bio.c:1.76 src/sys/uvm/uvm_bio.c:1.77
--- src/sys/uvm/uvm_bio.c:1.76	Sat Jun 18 21:14:43 2011
+++ src/sys/uvm/uvm_bio.c	Sun Jun 19 02:42:53 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: uvm_bio.c,v 1.76 2011/06/18 21:14:43 rmind Exp $	*/
+/*	$NetBSD: uvm_bio.c,v 1.77 2011/06/19 02:42:53 rmind Exp $	*/
 
 /*
  * Copyright (c) 1998 Chuck Silvers.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uvm_bio.c,v 1.76 2011/06/18 21:14:43 rmind Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uvm_bio.c,v 1.77 2011/06/19 02:42:53 rmind Exp $");
 
 #include "opt_uvmhist.h"
 #include "opt_ubc.h"
@@ -686,6 +686,7 @@
 
 			umap->flags &= ~UMAP_MAPPING_CACHED;
 			LIST_REMOVE(umap, hash);
+			LIST_REMOVE(umap, list);
 			umap->uobj = NULL;
 			TAILQ_INSERT_HEAD(UBC_QUEUE(umap->offset), umap,
 			    inactive);

Reply via email to