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: