Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Add "void *extra" argument to vcache_new() so a file system may



details:   https://anonhg.NetBSD.org/src/rev/5a259da3cf81
branches:  trunk
changeset: 447128:5a259da3cf81
user:      hannken <hannken%NetBSD.org@localhost>
date:      Tue Jan 01 10:06:54 2019 +0000

description:
Add "void *extra" argument to vcache_new() so a file system may
pass more information about the file to create.

Welcome to 8.99.30

diffstat:

 share/man/man9/vfsops.9         |  10 +++++++---
 share/man/man9/vnode.9          |  10 +++++++---
 sys/fs/tmpfs/tmpfs_subr.c       |   8 ++++----
 sys/fs/tmpfs/tmpfs_vfsops.c     |   6 +++---
 sys/fs/udf/udf_subr.c           |   8 ++++----
 sys/kern/vfs_subr.c             |   8 ++++----
 sys/kern/vfs_vnode.c            |   8 ++++----
 sys/miscfs/deadfs/dead_vfsops.c |   6 +++---
 sys/sys/mount.h                 |  11 ++++++-----
 sys/sys/param.h                 |   4 ++--
 sys/sys/vnode.h                 |   4 ++--
 sys/ufs/ext2fs/ext2fs_vfsops.c  |   6 +++---
 sys/ufs/ext2fs/ext2fs_vnops.c   |   6 +++---
 sys/ufs/ffs/ffs_vfsops.c        |   6 +++---
 sys/ufs/ffs/ffs_wapbl.c         |   6 +++---
 sys/ufs/lfs/lfs_rfw.c           |   7 ++++---
 sys/ufs/lfs/lfs_vfsops.c        |   6 +++---
 sys/ufs/lfs/lfs_vnops.c         |   9 +++++----
 sys/ufs/ufs/ufs_vnops.c         |   9 +++++----
 19 files changed, 75 insertions(+), 63 deletions(-)

diffs (truncated from 586 to 300 lines):

diff -r e43f22bd270f -r 5a259da3cf81 share/man/man9/vfsops.9
--- a/share/man/man9/vfsops.9   Tue Jan 01 08:09:30 2019 +0000
+++ b/share/man/man9/vfsops.9   Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-.\"     $NetBSD: vfsops.9,v 1.48 2017/07/03 21:28:48 wiz Exp $
+.\"     $NetBSD: vfsops.9,v 1.49 2019/01/01 10:06:54 hannken Exp $
 .\"
 .\" Copyright (c) 2001 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 July 12, 2015
+.Dd January 1, 2019
 .Dt VFSOPS 9
 .Os
 .Sh NAME
@@ -72,7 +72,7 @@
 .Ft int
 .Fn VFS_LOADVNODE "struct mount *mp" "struct vnode *vp" "const void *key" "size_t key_len" "const void **new_key"
 .Ft int
-.Fn VFS_NEWVNODE "struct mount *mp" "struct vnode *dvp" "struct vnode *vp" "struct vattr *vap" "kauth_cred_t cred" "size_t *key_len" "const void **new_key"
+.Fn VFS_NEWVNODE "struct mount *mp" "struct vnode *dvp" "struct vnode *vp" "struct vattr *vap" "kauth_cred_t cred" "void *extra" "size_t *key_len" "const void **new_key"
 .Ft int
 .Fn VFS_FHTOVP "struct mount *mp" "struct fid *fhp" "struct vnode **vpp"
 .Ft int
@@ -378,6 +378,10 @@
 .Fa cred
 holds the credentials for the file to create.
 .Pp
+The argument
+.Fa extra
+allows the caller to pass more information about the file to create.
+.Pp
 The key for the file is returned in the addresses specified by
 .Fa key_len
 and
diff -r e43f22bd270f -r 5a259da3cf81 share/man/man9/vnode.9
--- a/share/man/man9/vnode.9    Tue Jan 01 08:09:30 2019 +0000
+++ b/share/man/man9/vnode.9    Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-.\"     $NetBSD: vnode.9,v 1.81 2017/07/03 21:28:48 wiz Exp $
+.\"     $NetBSD: vnode.9,v 1.82 2019/01/01 10:06:54 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 May 28, 2017
+.Dd January 1, 2019
 .Dt VNODE 9
 .Os
 .Sh NAME
@@ -76,7 +76,7 @@
 .Ft int
 .Fn vcache_get "struct mount *mp" "const void *key" "size_t key_len" "struct vnode **vpp"
 .Ft int
-.Fn vcache_new "struct mount *mp" "struct vnode *dvp" "struct vattr *vap" "kauth_cred_t cred" "struct vnode **vpp"
+.Fn vcache_new "struct mount *mp" "struct vnode *dvp" "struct vattr *vap" "kauth_cred_t cred" "void *extra" "struct vnode **vpp"
 .Ft int
 .Fn vcache_rekey_enter "struct mount *mp" "struct vnode *vp" "const void *old_key" "size_t old_key_len" "const void *new_key" "size_t new_key_len"
 .Ft void
@@ -578,6 +578,10 @@
 .Fa cred
 holds the credentials for the file to create.
 .Pp
+The argument
+.Fa extra
+allows the caller to pass more information about the file to create.
+.Pp
 If a vnode is successfully created zero is returned, otherwise an
 appropriate error code is returned.
 .It Fn vcache_rekey_enter "mp" "vp" "old_key" "old_key_len" "new_key" "new_key_len"
diff -r e43f22bd270f -r 5a259da3cf81 sys/fs/tmpfs/tmpfs_subr.c
--- a/sys/fs/tmpfs/tmpfs_subr.c Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/fs/tmpfs/tmpfs_subr.c Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tmpfs_subr.c,v 1.103 2018/05/28 21:04:35 chs Exp $     */
+/*     $NetBSD: tmpfs_subr.c,v 1.104 2019/01/01 10:06:54 hannken 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.103 2018/05/28 21:04:35 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.104 2019/01/01 10:06:54 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/cprng.h>
@@ -177,7 +177,7 @@
  */
 int
 tmpfs_newvnode(struct mount *mp, struct vnode *dvp, struct vnode *vp,
-    struct vattr *vap, kauth_cred_t cred,
+    struct vattr *vap, kauth_cred_t cred, void *extra,
     size_t *key_len, const void **new_key)
 {
        tmpfs_mount_t *tmp = VFS_TO_TMPFS(mp);
@@ -390,7 +390,7 @@
        }
 
        /* Allocate a vnode that represents the new file. */
-       error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, vpp);
+       error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, NULL, vpp);
        if (error) {
                if (slink != NULL)
                        tmpfs_strname_free(tmp, slink, ssize);
diff -r e43f22bd270f -r 5a259da3cf81 sys/fs/tmpfs/tmpfs_vfsops.c
--- a/sys/fs/tmpfs/tmpfs_vfsops.c       Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/fs/tmpfs/tmpfs_vfsops.c       Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: tmpfs_vfsops.c,v 1.73 2018/08/09 08:43:56 christos Exp $       */
+/*     $NetBSD: tmpfs_vfsops.c,v 1.74 2019/01/01 10:06:54 hannken Exp $        */
 
 /*
  * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc.
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: tmpfs_vfsops.c,v 1.73 2018/08/09 08:43:56 christos Exp $");
+__KERNEL_RCSID(0, "$NetBSD: tmpfs_vfsops.c,v 1.74 2019/01/01 10:06:54 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -205,7 +205,7 @@
        va.va_mode = args->ta_root_mode & ALLPERMS;
        va.va_uid = args->ta_root_uid;
        va.va_gid = args->ta_root_gid;
-       error = vcache_new(mp, NULL, &va, NOCRED, &vp);
+       error = vcache_new(mp, NULL, &va, NOCRED, NULL, &vp);
        if (error) {
                mp->mnt_data = NULL;
                tmpfs_mntmem_destroy(tmp);
diff -r e43f22bd270f -r 5a259da3cf81 sys/fs/udf/udf_subr.c
--- a/sys/fs/udf/udf_subr.c     Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/fs/udf/udf_subr.c     Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: udf_subr.c,v 1.144 2018/10/14 17:37:40 jdolecek Exp $ */
+/* $NetBSD: udf_subr.c,v 1.145 2019/01/01 10:06:54 hannken 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.144 2018/10/14 17:37:40 jdolecek Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.145 2019/01/01 10:06:54 hannken Exp $");
 #endif /* not lint */
 
 
@@ -5779,7 +5779,7 @@
 
 int
 udf_newvnode(struct mount *mp, struct vnode *dvp, struct vnode *vp,
-    struct vattr *vap, kauth_cred_t cred,
+    struct vattr *vap, kauth_cred_t cred, void *extra,
     size_t *key_len, const void **new_key)
 {
        union dscrptr *dscr;
@@ -5938,7 +5938,7 @@
        struct udf_mount *ump = dir_node->ump;
        int error;
 
-       error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, vpp);
+       error = vcache_new(dvp->v_mount, dvp, vap, cnp->cn_cred, NULL, vpp);
        if (error)
                return error;
 
diff -r e43f22bd270f -r 5a259da3cf81 sys/kern/vfs_subr.c
--- a/sys/kern/vfs_subr.c       Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/kern/vfs_subr.c       Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vfs_subr.c,v 1.470 2017/10/27 12:25:15 joerg Exp $     */
+/*     $NetBSD: vfs_subr.c,v 1.471 2019/01/01 10:06:54 hannken Exp $   */
 
 /*-
  * Copyright (c) 1997, 1998, 2004, 2005, 2007, 2008 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.470 2017/10/27 12:25:15 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.471 2019/01/01 10:06:54 hannken Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -351,7 +351,7 @@
        va.va_type = VBLK;
        va.va_rdev = dev;
 
-       return vcache_new(dead_rootmount, NULL, &va, NOCRED, vpp);
+       return vcache_new(dead_rootmount, NULL, &va, NOCRED, NULL, vpp);
 }
 
 /*
@@ -367,7 +367,7 @@
        va.va_type = VCHR;
        va.va_rdev = dev;
 
-       return vcache_new(dead_rootmount, NULL, &va, NOCRED, vpp);
+       return vcache_new(dead_rootmount, NULL, &va, NOCRED, NULL, vpp);
 }
 
 /*
diff -r e43f22bd270f -r 5a259da3cf81 sys/kern/vfs_vnode.c
--- a/sys/kern/vfs_vnode.c      Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/kern/vfs_vnode.c      Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: vfs_vnode.c,v 1.100 2017/09/22 06:05:20 joerg Exp $    */
+/*     $NetBSD: vfs_vnode.c,v 1.101 2019/01/01 10:06:54 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.100 2017/09/22 06:05:20 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.101 2019/01/01 10:06:54 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -1375,7 +1375,7 @@
  */
 int
 vcache_new(struct mount *mp, struct vnode *dvp, struct vattr *vap,
-    kauth_cred_t cred, struct vnode **vpp)
+    kauth_cred_t cred, void *extra, struct vnode **vpp)
 {
        int error;
        uint32_t hash;
@@ -1393,7 +1393,7 @@
        vp = VIMPL_TO_VNODE(vip);
 
        /* Create and load the fs node. */
-       error = VFS_NEWVNODE(mp, dvp, vp, vap, cred,
+       error = VFS_NEWVNODE(mp, dvp, vp, vap, cred, extra,
            &vip->vi_key.vk_key_len, &vip->vi_key.vk_key);
        if (error) {
                mutex_enter(&vcache_lock);
diff -r e43f22bd270f -r 5a259da3cf81 sys/miscfs/deadfs/dead_vfsops.c
--- a/sys/miscfs/deadfs/dead_vfsops.c   Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/miscfs/deadfs/dead_vfsops.c   Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: dead_vfsops.c,v 1.8 2017/08/21 08:56:45 hannken Exp $  */
+/*     $NetBSD: dead_vfsops.c,v 1.9 2019/01/01 10:06:54 hannken Exp $  */
 
 /*-
  * Copyright (c) 2014 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dead_vfsops.c,v 1.8 2017/08/21 08:56:45 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dead_vfsops.c,v 1.9 2019/01/01 10:06:54 hannken Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -92,7 +92,7 @@
  */
 int
 dead_newvnode(struct mount *mp, struct vnode *dvp, struct vnode *vp,
-    struct vattr *vap, kauth_cred_t cred,
+    struct vattr *vap, kauth_cred_t cred, void *extra,
     size_t *key_len, const void **new_key)
 {
 
diff -r e43f22bd270f -r 5a259da3cf81 sys/sys/mount.h
--- a/sys/sys/mount.h   Tue Jan 01 08:09:30 2019 +0000
+++ b/sys/sys/mount.h   Tue Jan 01 10:06:54 2019 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mount.h,v 1.233 2018/12/10 21:19:33 jdolecek Exp $     */
+/*     $NetBSD: mount.h,v 1.234 2019/01/01 10:06:54 hannken Exp $      */
 
 /*
  * Copyright (c) 1989, 1991, 1993
@@ -189,7 +189,7 @@
        int     (*vfs_loadvnode) (struct mount *, struct vnode *,
                                    const void *, size_t, const void **);
        int     (*vfs_newvnode) (struct mount *, struct vnode *, struct vnode *,
-                                   struct vattr *, kauth_cred_t,
+                                   struct vattr *, kauth_cred_t, void *,
                                    size_t *, const void **);
        int     (*vfs_fhtovp)   (struct mount *, struct fid *,
                                    struct vnode **);
@@ -215,8 +215,9 @@
 #define VFS_VGET(MP, INO, VPP)    (*(MP)->mnt_op->vfs_vget)(MP, INO, VPP)
 #define VFS_LOADVNODE(MP, VP, KEY, KEY_LEN, NEW_KEY) \
        (*(MP)->mnt_op->vfs_loadvnode)(MP, VP, KEY, KEY_LEN, NEW_KEY)
-#define VFS_NEWVNODE(MP, DVP, VP, VAP, CRED, NEW_LEN, NEW_KEY) \
-       (*(MP)->mnt_op->vfs_newvnode)(MP, DVP, VP, VAP, CRED, NEW_LEN, NEW_KEY)
+#define VFS_NEWVNODE(MP, DVP, VP, VAP, CRED, EXTRA, NEW_LEN, NEW_KEY) \
+       (*(MP)->mnt_op->vfs_newvnode)(MP, DVP, VP, VAP, CRED, EXTRA, \



Home | Main Index | Thread Index | Old Index