Module Name: src Committed By: christos Date: Wed Sep 18 17:59:15 UTC 2019
Modified Files: src/sys/fs/msdosfs: msdosfs_vnops.c src/sys/fs/tmpfs: tmpfs_subr.c src/sys/fs/udf: udf_subr.c src/sys/ufs/chfs: chfs_vnode.c src/sys/ufs/ext2fs: ext2fs_vnops.c src/sys/ufs/lfs: lfs_vnops.c src/sys/ufs/ufs: ufs_vnops.c Log Message: Add newly created vnodes to the namei cache. The rest of the filesystems already did that (or they don't support writing). Discussed in tech-kern. To generate a diff of this commit: cvs rdiff -u -r1.98 -r1.99 src/sys/fs/msdosfs/msdosfs_vnops.c cvs rdiff -u -r1.104 -r1.105 src/sys/fs/tmpfs/tmpfs_subr.c cvs rdiff -u -r1.146 -r1.147 src/sys/fs/udf/udf_subr.c cvs rdiff -u -r1.15 -r1.16 src/sys/ufs/chfs/chfs_vnode.c cvs rdiff -u -r1.129 -r1.130 src/sys/ufs/ext2fs/ext2fs_vnops.c cvs rdiff -u -r1.324 -r1.325 src/sys/ufs/lfs/lfs_vnops.c cvs rdiff -u -r1.247 -r1.248 src/sys/ufs/ufs/ufs_vnops.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/msdosfs/msdosfs_vnops.c diff -u src/sys/fs/msdosfs/msdosfs_vnops.c:1.98 src/sys/fs/msdosfs/msdosfs_vnops.c:1.99 --- src/sys/fs/msdosfs/msdosfs_vnops.c:1.98 Tue Apr 25 23:02:48 2017 +++ src/sys/fs/msdosfs/msdosfs_vnops.c Wed Sep 18 13:59:14 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vnops.c,v 1.98 2017/04/26 03:02:48 riastradh Exp $ */ +/* $NetBSD: msdosfs_vnops.c,v 1.99 2019/09/18 17:59:14 christos Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.98 2017/04/26 03:02:48 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vnops.c,v 1.99 2019/09/18 17:59:14 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -153,6 +153,8 @@ msdosfs_create(void *v) goto bad; VN_KNOTE(ap->a_dvp, NOTE_WRITE); *ap->a_vpp = DETOV(dep); + cache_enter(ap->a_dvp, *ap->a_vpp, cnp->cn_nameptr, cnp->cn_namelen, + cnp->cn_flags); return (0); bad: Index: src/sys/fs/tmpfs/tmpfs_subr.c diff -u src/sys/fs/tmpfs/tmpfs_subr.c:1.104 src/sys/fs/tmpfs/tmpfs_subr.c:1.105 --- src/sys/fs/tmpfs/tmpfs_subr.c:1.104 Tue Jan 1 05:06:54 2019 +++ src/sys/fs/tmpfs/tmpfs_subr.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: tmpfs_subr.c,v 1.104 2019/01/01 10:06:54 hannken Exp $ */ +/* $NetBSD: tmpfs_subr.c,v 1.105 2019/09/18 17:59:15 christos Exp $ */ /* * Copyright (c) 2005-2013 The NetBSD Foundation, Inc. @@ -73,7 +73,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.104 2019/01/01 10:06:54 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.105 2019/09/18 17:59:15 christos Exp $"); #include <sys/param.h> #include <sys/cprng.h> @@ -434,6 +434,7 @@ tmpfs_construct_node(vnode_t *dvp, vnode VOP_UNLOCK(*vpp); + cache_enter(dvp, *vpp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags); return 0; } Index: src/sys/fs/udf/udf_subr.c diff -u src/sys/fs/udf/udf_subr.c:1.146 src/sys/fs/udf/udf_subr.c:1.147 --- src/sys/fs/udf/udf_subr.c:1.146 Mon Jun 3 02:04:20 2019 +++ src/sys/fs/udf/udf_subr.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: udf_subr.c,v 1.146 2019/06/03 06:04:20 msaitoh Exp $ */ +/* $NetBSD: udf_subr.c,v 1.147 2019/09/18 17:59:15 christos Exp $ */ /* * Copyright (c) 2006, 2008 Reinoud Zandijk @@ -29,7 +29,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.146 2019/06/03 06:04:20 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.147 2019/09/18 17:59:15 christos Exp $"); #endif /* not lint */ @@ -5963,6 +5963,7 @@ udf_create_node(struct vnode *dvp, struc /* adjust file count */ udf_adjust_filecount(udf_node, 1); + cache_enter(dvp, *vpp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags); return 0; } Index: src/sys/ufs/chfs/chfs_vnode.c diff -u src/sys/ufs/chfs/chfs_vnode.c:1.15 src/sys/ufs/chfs/chfs_vnode.c:1.16 --- src/sys/ufs/chfs/chfs_vnode.c:1.15 Sat Apr 1 15:35:57 2017 +++ src/sys/ufs/chfs/chfs_vnode.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: chfs_vnode.c,v 1.15 2017/04/01 19:35:57 riastradh Exp $ */ +/* $NetBSD: chfs_vnode.c,v 1.16 2019/09/18 17:59:15 christos Exp $ */ /*- * Copyright (c) 2010 Department of Software Engineering, @@ -310,6 +310,8 @@ chfs_makeinode(int mode, struct vnode *d VOP_UNLOCK(vp); *vpp = vp; + cache_enter(pdir, *vpp, cnp->cn_nameptr, cnp->cn_namelen, + cnp->cn_flags); return (0); } Index: src/sys/ufs/ext2fs/ext2fs_vnops.c diff -u src/sys/ufs/ext2fs/ext2fs_vnops.c:1.129 src/sys/ufs/ext2fs/ext2fs_vnops.c:1.130 --- src/sys/ufs/ext2fs/ext2fs_vnops.c:1.129 Tue Jan 1 05:06:55 2019 +++ src/sys/ufs/ext2fs/ext2fs_vnops.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_vnops.c,v 1.129 2019/01/01 10:06:55 hannken Exp $ */ +/* $NetBSD: ext2fs_vnops.c,v 1.130 2019/09/18 17:59:15 christos Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1993 @@ -65,7 +65,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.129 2019/01/01 10:06:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_vnops.c,v 1.130 2019/09/18 17:59:15 christos Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -1045,6 +1045,7 @@ ext2fs_makeinode(struct vattr *vap, stru } *vpp = tvp; + cache_enter(dvp, *vpp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags); return 0; bad: Index: src/sys/ufs/lfs/lfs_vnops.c diff -u src/sys/ufs/lfs/lfs_vnops.c:1.324 src/sys/ufs/lfs/lfs_vnops.c:1.325 --- src/sys/ufs/lfs/lfs_vnops.c:1.324 Wed Jun 19 20:49:11 2019 +++ src/sys/ufs/lfs/lfs_vnops.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_vnops.c,v 1.324 2019/06/20 00:49:11 christos Exp $ */ +/* $NetBSD: lfs_vnops.c,v 1.325 2019/09/18 17:59:15 christos Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -125,7 +125,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.324 2019/06/20 00:49:11 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_vnops.c,v 1.325 2019/09/18 17:59:15 christos Exp $"); #ifdef _KERNEL_OPT #include "opt_compat_netbsd.h" @@ -405,6 +405,7 @@ lfs_makeinode(struct vattr *vap, struct if (error) goto bad; *vpp = tvp; + cache_enter(dvp, *vpp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags); KASSERT(VOP_ISLOCKED(*vpp) == LK_EXCLUSIVE); return (0); Index: src/sys/ufs/ufs/ufs_vnops.c diff -u src/sys/ufs/ufs/ufs_vnops.c:1.247 src/sys/ufs/ufs/ufs_vnops.c:1.248 --- src/sys/ufs/ufs/ufs_vnops.c:1.247 Sun Jun 30 20:57:06 2019 +++ src/sys/ufs/ufs/ufs_vnops.c Wed Sep 18 13:59:15 2019 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_vnops.c,v 1.247 2019/07/01 00:57:06 dholland Exp $ */ +/* $NetBSD: ufs_vnops.c,v 1.248 2019/09/18 17:59:15 christos Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.247 2019/07/01 00:57:06 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_vnops.c,v 1.248 2019/09/18 17:59:15 christos Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -1909,6 +1909,7 @@ ufs_makeinode(struct vattr *vap, struct if (error) goto bad; *vpp = tvp; + cache_enter(dvp, *vpp, cnp->cn_nameptr, cnp->cn_namelen, cnp->cn_flags); return (0); bad: