Print this page
11083 support NFS server in zone
Portions contributed by: Dan Kruchinin <dan.kruchinin@nexenta.com>
Portions contributed by: Stepan Zastupov <stepan.zastupov@gmail.com>
Portions contributed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
Portions contributed by: Mike Zeller <mike@mikezeller.net>
Portions contributed by: Dan McDonald <danmcd@joyent.com>
Portions contributed by: Gordon Ross <gordon.w.ross@gmail.com>
Portions contributed by: Vitaliy Gusev <gusev.vitaliy@gmail.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Rob Gittins <rob.gittins@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Jason King <jbk@joyent.com>
Reviewed by: C Fraire <cfraire@me.com>
Change-Id: I22f289d357503f9b48a0bc2482cc4328a6d43d16

@@ -22,15 +22,17 @@
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
  */
 
+/*
+ * Copyright 2018 Nexenta Systems, Inc.
+ */
+
 #ifndef _SHAREFS_SHAREFS_H
 #define _SHAREFS_SHAREFS_H
 
-#pragma ident   "%Z%%M% %I%     %E% SMI"
-
 /*
  * This header provides service for the sharefs module.
  */
 
 #include <sys/modctl.h>

@@ -65,28 +67,31 @@
         vnode_t *sharefs_vfs_root;
 } sharefs_vfs_t;
 
 #define SHAREFS_NAME_MAX        MAXNAMELEN
 
-/*
+typedef struct sharetab_globals {
+        /*
  * The lock ordering whenever sharefs_lock and sharetab_lock both
  * need to be held is: sharefs_lock and then sharetab_lock.
  */
-extern krwlock_t        sharefs_lock;   /* lock for the vnode ops */
-extern sharetab_t       *sharefs_sharetab;      /* The sharetab. */
+        krwlock_t       sharefs_lock;   /* lock for the vnode ops */
+        sharetab_t      *sharefs_sharetab;      /* The sharetab. */
 
-extern uint_t           sharetab_count; /* How many shares? */
-extern krwlock_t        sharetab_lock;  /* lock for the cached sharetab */
-extern size_t           sharetab_size;  /* How big is the sharetab file? */
+        uint_t          sharetab_count; /* How many shares? */
+        krwlock_t       sharetab_lock;  /* lock for the cached sharetab */
+        size_t          sharetab_size;  /* How big is the sharetab file? */
 
-extern timestruc_t      sharetab_mtime; /* Last mod to sharetab */
-extern timestruc_t      sharetab_snap_time;     /* Last snap */
-extern uint_t           sharetab_generation;    /* Which copy is it? */
+        timestruc_t     sharetab_mtime; /* Last mod to sharetab */
+        timestruc_t     sharetab_snap_time;     /* Last snap */
+        uint_t          sharetab_generation;    /* Which copy is it? */
+} sharetab_globals_t;
 
 #define SHAREFS_INO_FILE        0x80
 
 extern vnode_t *sharefs_create_root_file(vfs_t *);
+extern sharetab_globals_t *sharetab_get_globals(zone_t *zone);
 
 /*
  * Sharetab file
  *
  * Note that even though the sharetab code does not explictly