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 <sys/cdefs.h>
 __KERNEL_RCSID(0, "$NetBSD: vfs_mount.c,v 1.40 2016/07/07 06:55:43 msaitoh Exp $");
 
-#define _VFS_VNODE_PRIVATE
-
 #include <sys/param.h>
 #include <sys/kernel.h>
 
@@ -90,7 +88,7 @@
 #include <sys/sysctl.h>
 #include <sys/systm.h>
 #include <sys/vfs_syscalls.h>
-#include <sys/vnode.h>
+#include <sys/vnode_impl.h>
 
 #include <miscfs/genfs/genfs.h>
 #include <miscfs/specfs/specdev.h>
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 <sys/param.h>
 #include <sys/systm.h>
 #include <sys/conf.h>
@@ -85,7 +83,7 @@
 #include <sys/filedesc.h>
 #include <sys/kernel.h>
 #include <sys/mount.h>
-#include <sys/vnode.h>
+#include <sys/vnode_impl.h>
 #include <sys/stat.h>
 #include <sys/sysctl.h>
 #include <sys/namei.h>
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 <sys/cdefs.h>
 __KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.56 2016/08/20 12:37:08 hannken Exp $");
 
-#define _VFS_VNODE_PRIVATE
-
 #include <sys/param.h>
 #include <sys/kernel.h>
 
@@ -177,7 +175,7 @@
 #include <sys/syscallargs.h>
 #include <sys/sysctl.h>
 #include <sys/systm.h>
-#include <sys/vnode.h>
+#include <sys/vnode_impl.h>
 #include <sys/wapbl.h>
 #include <sys/fstrans.h>
 
@@ -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 <sys/vnode.h>
+
+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_ */