summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys/vfs.h
diff options
context:
space:
mode:
authorjv227347 <Jordan.Vaughan@Sun.com>2010-08-12 17:34:26 -0700
committerjv227347 <Jordan.Vaughan@Sun.com>2010-08-12 17:34:26 -0700
commita19609f85693e4e7d7e744d836a4e87193c934e4 (patch)
tree7ea27321d90fa4b9b61e48ec06e5b52f5f7b509a /usr/src/uts/common/sys/vfs.h
parenta69116193464f859a8b27a2db19ad330ce163a55 (diff)
downloadillumos-joyent-a19609f85693e4e7d7e744d836a4e87193c934e4.tar.gz
6906740 Zones need an improved reference counting mechanism
Diffstat (limited to 'usr/src/uts/common/sys/vfs.h')
-rw-r--r--usr/src/uts/common/sys/vfs.h45
1 files changed, 24 insertions, 21 deletions
diff --git a/usr/src/uts/common/sys/vfs.h b/usr/src/uts/common/sys/vfs.h
index 5fca4584eb..ba013a0eda 100644
--- a/usr/src/uts/common/sys/vfs.h
+++ b/usr/src/uts/common/sys/vfs.h
@@ -33,6 +33,7 @@
#ifndef _SYS_VFS_H
#define _SYS_VFS_H
+#include <sys/zone.h>
#include <sys/types.h>
#include <sys/t_lock.h>
#include <sys/cred.h>
@@ -173,26 +174,6 @@ extern avl_tree_t vskstat_tree;
extern kmutex_t vskstat_tree_lock;
/*
- * Private vfs data, NOT to be used by a file system implementation.
- */
-
-#define VFS_FEATURE_MAXSZ 4
-
-typedef struct vfs_impl {
- /* Counted array - Bitmap of vfs features */
- uint32_t vi_featureset[VFS_FEATURE_MAXSZ];
- /*
- * Support for statistics on the vnode operations
- */
- vsk_anchor_t *vi_vskap; /* anchor for vopstats' kstat */
- vopstats_t *vi_fstypevsp; /* ptr to per-fstype vopstats */
- vopstats_t vi_vopstats; /* per-mount vnode op stats */
-
- timespec_t vi_hrctime; /* High-res creation time */
-} vfs_impl_t;
-
-
-/*
* Structure per mounted file system. Each mounted file system has
* an array of operations and an instance record.
*
@@ -241,7 +222,7 @@ typedef struct vfs {
refstr_t *vfs_resource; /* mounted resource name */
refstr_t *vfs_mntpt; /* mount point name */
time_t vfs_mtime; /* time we were mounted */
- vfs_impl_t *vfs_implp; /* impl specific data */
+ struct vfs_impl *vfs_implp; /* impl specific data */
/*
* Zones support. Note that the zone that "owns" the mount isn't
* necessarily the same as the zone in which the zone is visible.
@@ -448,6 +429,28 @@ enum {
#define VFSSP_VERBATIM 0x1 /* do not prefix the supplied path */
#if defined(_KERNEL)
+
+/*
+ * Private vfs data, NOT to be used by a file system implementation.
+ */
+
+#define VFS_FEATURE_MAXSZ 4
+
+typedef struct vfs_impl {
+ /* Counted array - Bitmap of vfs features */
+ uint32_t vi_featureset[VFS_FEATURE_MAXSZ];
+ /*
+ * Support for statistics on the vnode operations
+ */
+ vsk_anchor_t *vi_vskap; /* anchor for vopstats' kstat */
+ vopstats_t *vi_fstypevsp; /* ptr to per-fstype vopstats */
+ vopstats_t vi_vopstats; /* per-mount vnode op stats */
+
+ timespec_t vi_hrctime; /* High-res creation time */
+
+ zone_ref_t vi_zone_ref; /* reference to zone */
+} vfs_impl_t;
+
/*
* Public operations.
*/