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