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);