split vnode.h - Split sys/vnode.h into vnode.h and vnode_impl.h. - Move _VFS_VNODE_PRIVATE protected operations into vnode_impl.h. - Move struct vnode_impl definition and operations into vnode_impl.h. - Include vnode_impl.h where we include vnode.h with _VFS_VNODE_PRIVATE defined. - Get rid of _VFS_VNODE_PRIVATE diff -r a383ca0b02f4 -r 29f6597620d4 sys/kern/vfs_mount.c --- a/sys/kern/vfs_mount.c Sat Oct 22 13:39:05 2016 +0200 +++ b/sys/kern/vfs_mount.c Sat Oct 22 13:39:11 2016 +0200 @@ -69,8 +69,6 @@ #include __KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.40 2016/07/07 06:55:43 msaitoh Exp $"); -#define _VFS_VNODE_PRIVATE - #include #include @@ -90,7 +88,7 @@ #include #include #include -#include +#include #include #include diff -r a383ca0b02f4 -r 29f6597620d4 sys/kern/vfs_subr.c --- a/sys/kern/vfs_subr.c Sat Oct 22 13:39:05 2016 +0200 +++ b/sys/kern/vfs_subr.c Sat Oct 22 13:39:11 2016 +0200 @@ -76,8 +76,6 @@ #include "opt_compat_43.h" #endif -#define _VFS_VNODE_PRIVATE /* for vcache_print(). */ - #include #include #include @@ -85,7 +83,7 @@ #include #include #include -#include +#include #include #include #include diff -r a383ca0b02f4 -r 29f6597620d4 sys/kern/vfs_vnode.c --- a/sys/kern/vfs_vnode.c Sat Oct 22 13:39:05 2016 +0200 +++ b/sys/kern/vfs_vnode.c Sat Oct 22 13:39:11 2016 +0200 @@ -158,8 +158,6 @@ #include __KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.56 2016/08/20 12:37:08 hannken Exp $"); -#define _VFS_VNODE_PRIVATE - #include #include @@ -177,7 +175,7 @@ #include #include #include -#include +#include #include #include @@ -187,30 +185,6 @@ /* Flags to vrelel. */ #define VRELEL_ASYNC_RELE 0x0001 /* Always defer to vrele thread. */ -enum vnode_state { - VS_MARKER, /* Stable, used as marker. Will not change. */ - VS_LOADING, /* Intermediate, initialising the fs node. */ - VS_ACTIVE, /* Stable, valid fs node attached. */ - VS_BLOCKED, /* Intermediate, active, no new references allowed. */ - VS_RECLAIMING, /* Intermediate, detaching the fs node. */ - VS_RECLAIMED /* Stable, no fs node attached. */ -}; -struct vcache_key { - struct mount *vk_mount; - const void *vk_key; - size_t vk_key_len; -}; -struct vnode_impl { - struct vnode vi_vnode; - enum vnode_state vi_state; - SLIST_ENTRY(vnode_impl) vi_hash; - struct vcache_key vi_key; -}; -typedef struct vnode_impl vnode_impl_t; - -#define VIMPL_TO_VNODE(node) ((vnode_t *)(node)) -#define VNODE_TO_VIMPL(vp) ((vnode_impl_t *)(vp)) - u_int numvnodes __cacheline_aligned; /* diff -r a383ca0b02f4 -r 29f6597620d4 sys/sys/vnode.h --- a/sys/sys/vnode.h Sat Oct 22 13:39:05 2016 +0200 +++ b/sys/sys/vnode.h Sat Oct 22 13:39:11 2016 +0200 @@ -590,18 +590,6 @@ __printflike(1, 2)); #endif /* DDB */ -#ifdef _VFS_VNODE_PRIVATE -/* - * Private vnode manipulation functions. - */ -struct vnode * - vnalloc_marker(struct mount *); -void vnfree_marker(vnode_t *); -bool vnis_marker(vnode_t *); -void vcache_print(vnode_t *, const char *, - void (*)(const char *, ...) __printflike(1, 2)); -#endif /* _VFS_VNODE_PRIVATE */ - #endif /* _KERNEL */ #endif /* !_SYS_VNODE_H_ */ diff -r a383ca0b02f4 -r 29f6597620d4 sys/sys/vnode_impl.h --- a/sys/sys/vnode_impl.h Sat Oct 22 13:39:05 2016 +0200 +++ b/sys/sys/vnode_impl.h Sat Oct 22 13:39:11 2016 +0200 @@ -0,0 +1,71 @@ +/* $NetBSD: $ */ + +/*- + * Copyright (c) 2016 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _SYS_VNODE_IMPL_H_ +#define _SYS_VNODE_IMPL_H_ + +#include + +enum vnode_state { + VS_MARKER, /* Stable, used as marker. Will not change. */ + VS_LOADING, /* Intermediate, initialising the fs node. */ + VS_ACTIVE, /* Stable, valid fs node attached. */ + VS_BLOCKED, /* Intermediate, active, no new references allowed. */ + VS_RECLAIMING, /* Intermediate, detaching the fs node. */ + VS_RECLAIMED /* Stable, no fs node attached. */ +}; +struct vcache_key { + struct mount *vk_mount; + const void *vk_key; + size_t vk_key_len; +}; +struct vnode_impl { + struct vnode vi_vnode; + enum vnode_state vi_state; + SLIST_ENTRY(vnode_impl) vi_hash; + struct vcache_key vi_key; +}; +typedef struct vnode_impl vnode_impl_t; + +#define VIMPL_TO_VNODE(node) ((vnode_t *)(node)) +#define VNODE_TO_VIMPL(vp) ((vnode_impl_t *)(vp)) + +/* + * Vnode manipulation functions. + */ +vnode_t * + vnalloc_marker(struct mount *); +void vnfree_marker(vnode_t *); +bool vnis_marker(vnode_t *); +void vcache_print(vnode_t *, const char *, + void (*)(const char *, ...) __printflike(1, 2)); + +#endif /* !_SYS_VNODE_IMPL_H_ */