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


 442  * nlm_link: a list node used for keeping all nlm_globals objects
 443  *           in one global linked list.
 444  */
 445 struct nlm_globals {
 446         kmutex_t                        lock;
 447         clock_t                         grace_threshold;        /* (z) */
 448         pid_t                           lockd_pid;              /* (z) */
 449         nlm_run_status_t                run_status;             /* (z) */
 450         int32_t                         nsm_state;              /* (z) */
 451         kthread_t                       *nlm_gc_thread;         /* (z) */
 452         kcondvar_t                      nlm_gc_sched_cv;        /* (z) */
 453         kcondvar_t                      nlm_gc_finish_cv;       /* (z) */
 454         struct nlm_nsm                  nlm_nsm;                /* (z) */
 455         avl_tree_t                      nlm_hosts_tree;         /* (z) */
 456         mod_hash_t                      *nlm_hosts_hash;        /* (z) */
 457         struct nlm_host_list            nlm_idle_hosts;         /* (z) */
 458         struct nlm_slock_list           nlm_slocks;             /* (z) */
 459         int                             cn_idle_tmo;            /* (z) */
 460         int                             grace_period;           /* (z) */
 461         int                             retrans_tmo;            /* (z) */

 462         kmutex_t                        clean_lock;             /* (c) */
 463         TAILQ_ENTRY(nlm_globals)        nlm_link;               /* (g) */
 464 };
 465 TAILQ_HEAD(nlm_globals_list, nlm_globals);
 466 
 467 
 468 /*
 469  * This is what we pass as the "owner handle" for NLM_LOCK.
 470  * This lets us find the blocked lock in NLM_GRANTED.
 471  * It also exposes on the wire what we're using as the
 472  * sysid for any server, which can be very helpful for
 473  * problem diagnosis.  (Observability is good).
 474  */
 475 struct nlm_owner_handle {
 476         sysid_t oh_sysid;               /* of remote host */
 477 };
 478 
 479 /*
 480  * Number retries NLM RPC call is repeatead in case of failure.
 481  * (used in case of conectionless transport).




 442  * nlm_link: a list node used for keeping all nlm_globals objects
 443  *           in one global linked list.
 444  */
 445 struct nlm_globals {
 446         kmutex_t                        lock;
 447         clock_t                         grace_threshold;        /* (z) */
 448         pid_t                           lockd_pid;              /* (z) */
 449         nlm_run_status_t                run_status;             /* (z) */
 450         int32_t                         nsm_state;              /* (z) */
 451         kthread_t                       *nlm_gc_thread;         /* (z) */
 452         kcondvar_t                      nlm_gc_sched_cv;        /* (z) */
 453         kcondvar_t                      nlm_gc_finish_cv;       /* (z) */
 454         struct nlm_nsm                  nlm_nsm;                /* (z) */
 455         avl_tree_t                      nlm_hosts_tree;         /* (z) */
 456         mod_hash_t                      *nlm_hosts_hash;        /* (z) */
 457         struct nlm_host_list            nlm_idle_hosts;         /* (z) */
 458         struct nlm_slock_list           nlm_slocks;             /* (z) */
 459         int                             cn_idle_tmo;            /* (z) */
 460         int                             grace_period;           /* (z) */
 461         int                             retrans_tmo;            /* (z) */
 462         zoneid_t                        nlm_zoneid;             /* (c) */
 463         kmutex_t                        clean_lock;             /* (c) */
 464         TAILQ_ENTRY(nlm_globals)        nlm_link;               /* (g) */
 465 };
 466 TAILQ_HEAD(nlm_globals_list, nlm_globals);
 467 
 468 
 469 /*
 470  * This is what we pass as the "owner handle" for NLM_LOCK.
 471  * This lets us find the blocked lock in NLM_GRANTED.
 472  * It also exposes on the wire what we're using as the
 473  * sysid for any server, which can be very helpful for
 474  * problem diagnosis.  (Observability is good).
 475  */
 476 struct nlm_owner_handle {
 477         sysid_t oh_sysid;               /* of remote host */
 478 };
 479 
 480 /*
 481  * Number retries NLM RPC call is repeatead in case of failure.
 482  * (used in case of conectionless transport).