diff options
author | jv227347 <Jordan.Vaughan@Sun.com> | 2010-08-12 17:34:26 -0700 |
---|---|---|
committer | jv227347 <Jordan.Vaughan@Sun.com> | 2010-08-12 17:34:26 -0700 |
commit | a19609f85693e4e7d7e744d836a4e87193c934e4 (patch) | |
tree | 7ea27321d90fa4b9b61e48ec06e5b52f5f7b509a /usr/src/uts/common/sys/vfs.h | |
parent | a69116193464f859a8b27a2db19ad330ce163a55 (diff) | |
download | illumos-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.h | 45 |
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. */ |