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