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).
|