Module Name: src Committed By: hannken Date: Wed Jan 11 09:04:37 UTC 2017
Modified Files: src/share/man/man9: vnode.9 src/sys/kern: vfs_cache.c vfs_vnode.c src/sys/sys: vnode.h vnode_impl.h Log Message: Move vnode members v_dnclist and v_nclist as vi_dnclist and vi_nclist to vnode_impl.h. To generate a diff of this commit: cvs rdiff -u -r1.74 -r1.75 src/share/man/man9/vnode.9 cvs rdiff -u -r1.111 -r1.112 src/sys/kern/vfs_cache.c cvs rdiff -u -r1.70 -r1.71 src/sys/kern/vfs_vnode.c cvs rdiff -u -r1.268 -r1.269 src/sys/sys/vnode.h cvs rdiff -u -r1.7 -r1.8 src/sys/sys/vnode_impl.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/vnode.9 diff -u src/share/man/man9/vnode.9:1.74 src/share/man/man9/vnode.9:1.75 --- src/share/man/man9/vnode.9:1.74 Mon Jan 2 10:33:28 2017 +++ src/share/man/man9/vnode.9 Wed Jan 11 09:04:37 2017 @@ -1,4 +1,4 @@ -.\" $NetBSD: vnode.9,v 1.74 2017/01/02 10:33:28 hannken Exp $ +.\" $NetBSD: vnode.9,v 1.75 2017/01/11 09:04:37 hannken Exp $ .\" .\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 2, 2017 +.Dd January 11, 2017 .Dt VNODE 9 .Os .Sh NAME @@ -174,8 +174,6 @@ struct vnode { struct buflists v_cleanblkhd; /* clean blocklist head */ struct buflists v_dirtyblkhd; /* dirty blocklist head */ TAILQ_ENTRY(vnode) v_synclist; /* vnodes with dirty bufs */ - LIST_HEAD(, namecache) v_dnclist; /* namecaches (children) */ - LIST_HEAD(, namecache) v_nclist; /* namecaches (parent) */ union { struct mount *vu_mountedhere;/* ptr to vfs (VDIR) */ struct socket *vu_socket; /* unix ipc (VSOCK) */ @@ -316,15 +314,6 @@ Its value must only be modified at splbi It does not track the number of dirty buffers attached to the vnode. .Pp -.Em v_dnclist -and -.Em v_nclist -are used by -.Xr namecache 9 -to maintain the list of associated entries so that -.Xr cache_purge 9 -can purge them. -.Pp The link to the file system which owns the vnode is recorded by .Em v_mount . See Index: src/sys/kern/vfs_cache.c diff -u src/sys/kern/vfs_cache.c:1.111 src/sys/kern/vfs_cache.c:1.112 --- src/sys/kern/vfs_cache.c:1.111 Mon Jan 2 10:33:28 2017 +++ src/sys/kern/vfs_cache.c Wed Jan 11 09:04:37 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_cache.c,v 1.111 2017/01/02 10:33:28 hannken Exp $ */ +/* $NetBSD: vfs_cache.c,v 1.112 2017/01/11 09:04:37 hannken Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.111 2017/01/02 10:33:28 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.112 2017/01/11 09:04:37 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_ddb.h" @@ -844,9 +844,9 @@ cache_enter(struct vnode *dvp, struct vn /* Fill in cache info. */ ncp->nc_dvp = dvp; - LIST_INSERT_HEAD(&dvp->v_dnclist, ncp, nc_dvlist); + LIST_INSERT_HEAD(&VNODE_TO_VIMPL(dvp)->vi_dnclist, ncp, nc_dvlist); if (vp) - LIST_INSERT_HEAD(&vp->v_nclist, ncp, nc_vlist); + LIST_INSERT_HEAD(&VNODE_TO_VIMPL(vp)->vi_nclist, ncp, nc_vlist); else { ncp->nc_vlist.le_prev = NULL; ncp->nc_vlist.le_next = NULL; @@ -1031,8 +1031,8 @@ cache_purge1(struct vnode *vp, const cha if (flags & PURGE_PARENTS) { SDT_PROBE(vfs, namecache, purge, parents, vp, 0, 0, 0, 0); - for (ncp = LIST_FIRST(&vp->v_nclist); ncp != NULL; - ncp = ncnext) { + for (ncp = LIST_FIRST(&VNODE_TO_VIMPL(vp)->vi_nclist); + ncp != NULL; ncp = ncnext) { ncnext = LIST_NEXT(ncp, nc_vlist); mutex_enter(&ncp->nc_lock); cache_invalidate(ncp); @@ -1042,8 +1042,8 @@ cache_purge1(struct vnode *vp, const cha } if (flags & PURGE_CHILDREN) { SDT_PROBE(vfs, namecache, purge, children, vp, 0, 0, 0, 0); - for (ncp = LIST_FIRST(&vp->v_dnclist); ncp != NULL; - ncp = ncnext) { + for (ncp = LIST_FIRST(&VNODE_TO_VIMPL(vp)->vi_dnclist); + ncp != NULL; ncp = ncnext) { ncnext = LIST_NEXT(ncp, nc_dvlist); mutex_enter(&ncp->nc_lock); cache_invalidate(ncp); Index: src/sys/kern/vfs_vnode.c diff -u src/sys/kern/vfs_vnode.c:1.70 src/sys/kern/vfs_vnode.c:1.71 --- src/sys/kern/vfs_vnode.c:1.70 Thu Jan 5 10:05:11 2017 +++ src/sys/kern/vfs_vnode.c Wed Jan 11 09:04:37 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_vnode.c,v 1.70 2017/01/05 10:05:11 hannken Exp $ */ +/* $NetBSD: vfs_vnode.c,v 1.71 2017/01/11 09:04:37 hannken Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -156,7 +156,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.70 2017/01/05 10:05:11 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.71 2017/01/11 09:04:37 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1023,12 +1023,12 @@ vcache_alloc(void) memset(vip, 0, sizeof(*vip)); /* SLIST_INIT(&vip->vi_hash); */ + /* LIST_INIT(&vip->vi_nclist); */ + /* LIST_INIT(&vip->vi_dnclist); */ vp = VIMPL_TO_VNODE(vip); uvm_obj_init(&vp->v_uobj, &uvm_vnodeops, true, 0); cv_init(&vp->v_cv, "vnode"); - /* LIST_INIT(&vp->v_nclist); */ - /* LIST_INIT(&vp->v_dnclist); */ rw_init(&vp->v_lock); vp->v_usecount = 1; Index: src/sys/sys/vnode.h diff -u src/sys/sys/vnode.h:1.268 src/sys/sys/vnode.h:1.269 --- src/sys/sys/vnode.h:1.268 Mon Jan 2 10:33:28 2017 +++ src/sys/sys/vnode.h Wed Jan 11 09:04:37 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode.h,v 1.268 2017/01/02 10:33:28 hannken Exp $ */ +/* $NetBSD: vnode.h,v 1.269 2017/01/11 09:04:37 hannken Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -74,7 +74,6 @@ #include <uvm/uvm_object.h> /* XXX */ #include <uvm/uvm_extern.h> /* XXX */ -struct namecache; struct uvm_ractx; #endif @@ -128,7 +127,6 @@ LIST_HEAD(buflists, buf); * f vnode_free_list_lock, or vrele_lock for vrele_list * i v_interlock * m mntvnode_lock - * n namecache_lock * s syncer_data_lock * u locked by underlying filesystem * v vnode lock @@ -155,8 +153,6 @@ struct vnode { struct buflists v_cleanblkhd; /* x: clean blocklist head */ struct buflists v_dirtyblkhd; /* x: dirty blocklist head */ TAILQ_ENTRY(vnode) v_synclist; /* s: vnodes with dirty bufs */ - LIST_HEAD(, namecache) v_dnclist; /* n: namecaches (children) */ - LIST_HEAD(, namecache) v_nclist; /* n: namecaches (parent) */ union { struct mount *vu_mountedhere;/* v: ptr to vfs (VDIR) */ struct socket *vu_socket; /* v: unix ipc (VSOCK) */ Index: src/sys/sys/vnode_impl.h diff -u src/sys/sys/vnode_impl.h:1.7 src/sys/sys/vnode_impl.h:1.8 --- src/sys/sys/vnode_impl.h:1.7 Thu Jan 5 10:05:11 2017 +++ src/sys/sys/vnode_impl.h Wed Jan 11 09:04:37 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vnode_impl.h,v 1.7 2017/01/05 10:05:11 hannken Exp $ */ +/* $NetBSD: vnode_impl.h,v 1.8 2017/01/11 09:04:37 hannken Exp $ */ /*- * Copyright (c) 2016 The NetBSD Foundation, Inc. @@ -34,6 +34,8 @@ #include <sys/vnode.h> +struct namecache; + enum vnode_state { VS_MARKER, /* Stable, used as marker. Will not change. */ VS_LOADING, /* Intermediate, initialising the fs node. */ @@ -59,12 +61,15 @@ struct vcache_key { * c vcache_lock * d vdrain_lock * i v_interlock + * n namecache_lock */ struct vnode_impl { struct vnode vi_vnode; enum vnode_state vi_state; /* i: current state */ struct vnodelst *vi_lrulisthd; /* d: current lru list head */ TAILQ_ENTRY(vnode_impl) vi_lrulist; /* d: lru list */ + LIST_HEAD(, namecache) vi_dnclist; /* n: namecaches (children) */ + LIST_HEAD(, namecache) vi_nclist; /* n: namecaches (parent) */ SLIST_ENTRY(vnode_impl) vi_hash; /* c: vnode cache list */ struct vcache_key vi_key; /* c: vnode cache key */ };