Lines Matching refs:g
130 static struct nlm_globals_list nlm_zones_list; /* (g) */
144 static ulong_t nlm_sysid_bmap[NLM_BMAP_WORDS]; /* (g) */
145 static int nlm_sysid_nidx; /* (g) */
171 static struct nlm_knc nlm_netconfigs[] = { /* (g) */
299 nlm_globals_register(struct nlm_globals *g)
302 TAILQ_INSERT_TAIL(&nlm_zones_list, g, nlm_link);
307 nlm_globals_unregister(struct nlm_globals *g)
310 TAILQ_REMOVE(&nlm_zones_list, g, nlm_link);
318 struct nlm_globals *g;
321 TAILQ_FOREACH(g, &nlm_zones_list, nlm_link)
322 cv_broadcast(&g->nlm_gc_sched_cv);
345 nlm_gc(struct nlm_globals *g)
350 idle_period = SEC_TO_TICK(g->cn_idle_tmo);
351 mutex_enter(&g->lock);
357 (void) cv_timedwait(&g->nlm_gc_sched_cv, &g->lock,
363 if (g->run_status == NLM_ST_STOPPING)
367 DTRACE_PROBE2(gc__start, struct nlm_globals *, g,
373 for (hostp = avl_first(&g->nlm_hosts_tree); hostp != NULL;
374 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp)) {
411 while ((hostp = TAILQ_FIRST(&g->nlm_idle_hosts)) != NULL) {
423 mutex_exit(&g->lock);
435 mutex_enter(&g->lock);
456 TAILQ_REMOVE(&g->nlm_idle_hosts,
459 TAILQ_INSERT_TAIL(&g->nlm_idle_hosts,
469 * g->cn_idle_tmo seconds.
473 nlm_host_unregister(g, hostp);
474 mutex_exit(&g->lock);
476 nlm_host_unmonitor(g, hostp);
478 mutex_enter(&g->lock);
479 if (g->run_status == NLM_ST_STOPPING)
487 DTRACE_PROBE1(gc__exit, struct nlm_globals *, g);
490 g->nlm_gc_thread = NULL;
491 mutex_exit(&g->lock);
493 cv_broadcast(&g->nlm_gc_finish_cv);
504 struct nlm_globals *g;
510 g = zone_getspecific(nlm_zone_key, curzone);
511 nlm_reclaim_client(g, hostp);
524 nlm_host_release(g, hostp);
601 nlm_suspend_zone(struct nlm_globals *g)
618 mutex_enter(&g->lock);
619 for (hostp = avl_first(&g->nlm_hosts_tree); hostp != NULL;
620 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp)) {
627 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link);
641 mutex_exit(&g->lock);
663 nlm_resume_zone(struct nlm_globals *g)
667 mutex_enter(&g->lock);
668 hostp = avl_first(&g->nlm_hosts_tree);
683 h_next = AVL_NEXT(&g->nlm_hosts_tree, hostp);
684 mutex_exit(&g->lock);
734 nlm_client_cancel_all(g, hostp);
738 nlm_host_release(g, hostp);
740 mutex_enter(&g->lock);
743 mutex_exit(&g->lock);
1194 nlm_host_unregister(struct nlm_globals *g, struct nlm_host *hostp)
1199 avl_remove(&g->nlm_hosts_tree, hostp);
1200 VERIFY(mod_hash_remove(g->nlm_hosts_hash,
1203 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link);
1344 struct nlm_globals *g;
1347 g = zone_getspecific(nlm_zone_key, curzone);
1355 SEC_TO_TICK(g->retrans_tmo));
1411 nlm_host_cancel_slocks(struct nlm_globals *g, struct nlm_host *hostp)
1415 mutex_enter(&g->lock);
1416 TAILQ_FOREACH(nslp, &g->nlm_slocks, nsl_link) {
1423 mutex_exit(&g->lock);
1610 nlm_host_find_locked(struct nlm_globals *g, const char *netid,
1616 ASSERT(MUTEX_HELD(&g->lock));
1623 hostp = avl_find(&g->nlm_hosts_tree, &key, &pos);
1631 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link);
1647 nlm_host_find(struct nlm_globals *g, const char *netid,
1652 mutex_enter(&g->lock);
1653 if (g->run_status != NLM_ST_UP)
1656 hostp = nlm_host_find_locked(g, netid, addr, NULL);
1659 mutex_exit(&g->lock);
1673 nlm_host_findcreate(struct nlm_globals *g, char *name,
1681 mutex_enter(&g->lock);
1682 if (g->run_status != NLM_ST_UP) {
1683 mutex_exit(&g->lock);
1687 host = nlm_host_find_locked(g, netid, addr, NULL);
1688 mutex_exit(&g->lock);
1704 mutex_enter(&g->lock);
1705 host = nlm_host_find_locked(g, netid, addr, &where);
1714 avl_insert(&g->nlm_hosts_tree, host, where);
1720 VERIFY(mod_hash_insert(g->nlm_hosts_hash,
1725 mutex_exit(&g->lock);
1747 nlm_host_find_by_sysid(struct nlm_globals *g, sysid_t sysid)
1751 mutex_enter(&g->lock);
1752 if (g->run_status != NLM_ST_UP)
1755 (void) mod_hash_find(g->nlm_hosts_hash,
1767 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link);
1774 mutex_exit(&g->lock);
1792 nlm_host_release_locked(struct nlm_globals *g, struct nlm_host *hostp)
1797 ASSERT(MUTEX_HELD(&g->lock));
1810 SEC_TO_TICK(g->cn_idle_tmo);
1813 TAILQ_INSERT_TAIL(&g->nlm_idle_hosts, hostp, nh_link);
1818 nlm_host_release(struct nlm_globals *g, struct nlm_host *hostp)
1823 mutex_enter(&g->lock);
1824 nlm_host_release_locked(g, hostp);
1825 mutex_exit(&g->lock);
1833 nlm_host_unmonitor(struct nlm_globals *g, struct nlm_host *host)
1842 stat = nlm_nsm_unmon(&g->nlm_nsm, host->nh_name);
1856 nlm_host_monitor(struct nlm_globals *g, struct nlm_host *host, int state)
1885 stat = nlm_nsmaddr_reg(&g->nlm_nsm, host->nh_name, family, &obj);
1888 mutex_enter(&g->lock);
1890 mutex_exit(&g->lock);
1903 stat = nlm_nsm_mon(&g->nlm_nsm, host->nh_name, host->nh_sysid);
1906 mutex_enter(&g->lock);
1908 mutex_exit(&g->lock);
1937 struct nlm_globals *g,
1952 mutex_enter(&g->lock);
1953 TAILQ_INSERT_TAIL(&g->nlm_slocks, nslp, nsl_link);
1954 mutex_exit(&g->lock);
1963 nlm_slock_unregister(struct nlm_globals *g, struct nlm_slock *nslp)
1965 mutex_enter(&g->lock);
1966 TAILQ_REMOVE(&g->nlm_slocks, nslp, nsl_link);
1967 mutex_exit(&g->lock);
1988 nlm_slock_wait(struct nlm_globals *g,
2001 mutex_enter(&g->lock);
2004 &g->lock, timeo_ticks);
2034 mutex_exit(&g->lock);
2047 nlm_slock_grant(struct nlm_globals *g,
2053 mutex_enter(&g->lock);
2054 TAILQ_FOREACH(nslp, &g->nlm_slocks, nsl_link) {
2072 mutex_exit(&g->lock);
2347 nlm_svc_starting(struct nlm_globals *g, struct file *fp,
2353 VERIFY(g->run_status == NLM_ST_STARTING);
2354 VERIFY(g->nlm_gc_thread == NULL);
2356 error = nlm_nsm_init_local(&g->nlm_nsm);
2360 g->run_status = NLM_ST_DOWN;
2370 g->nlm_gc_thread = zthread_create(NULL, 0, nlm_gc,
2371 g, 0, minclsyspri);
2379 stat = nlm_nsm_simu_crash(&g->nlm_nsm);
2386 stat = nlm_nsm_stat(&g->nlm_nsm, &g->nsm_state);
2393 g->grace_threshold = ddi_get_lbolt() +
2394 SEC_TO_TICK(g->grace_period);
2403 g->run_status = NLM_ST_UP;
2407 mutex_enter(&g->lock);
2408 g->run_status = NLM_ST_STOPPING;
2409 mutex_exit(&g->lock);
2411 nlm_svc_stopping(g);
2438 nlm_svc_stopping(struct nlm_globals *g)
2440 mutex_enter(&g->lock);
2441 ASSERT(g->run_status == NLM_ST_STOPPING);
2446 cv_signal(&g->nlm_gc_sched_cv);
2447 while (g->nlm_gc_thread != NULL)
2448 cv_wait(&g->nlm_gc_finish_cv, &g->lock);
2450 mutex_exit(&g->lock);
2457 while (!avl_is_empty(&g->nlm_hosts_tree)) {
2465 hostp = avl_first(&g->nlm_hosts_tree);
2468 nlm_client_cancel_all(g, hostp);
2481 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp);
2487 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp);
2497 while ((hostp = TAILQ_FIRST(&g->nlm_idle_hosts)) != NULL) {
2498 nlm_host_unregister(g, hostp);
2513 ASSERT(TAILQ_EMPTY(&g->nlm_slocks));
2515 nlm_nsm_fini(&g->nlm_nsm);
2516 g->lockd_pid = 0;
2517 g->run_status = NLM_ST_DOWN;
2527 struct nlm_globals *g;
2532 g = zone_getspecific(nlm_zone_key, curzone);
2539 mutex_enter(&g->lock);
2540 hostp = avl_first(&g->nlm_hosts_tree);
2550 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp);
2553 mutex_exit(&g->lock);
2567 struct nlm_globals *g;
2570 g = zone_getspecific(nlm_zone_key, curzone);
2572 mutex_enter(&g->lock);
2573 hostp = avl_first(&g->nlm_hosts_tree);
2578 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link);
2583 mutex_exit(&g->lock);
2611 mutex_enter(&g->lock);
2612 nlm_host_release_locked(g, hostp);
2614 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp);
2617 mutex_exit(&g->lock);
2763 struct nlm_globals *g;
2766 TAILQ_FOREACH(g, &nlm_zones_list, nlm_link)
2767 nlm_suspend_zone(g);
2775 struct nlm_globals *g;
2778 TAILQ_FOREACH(g, &nlm_zones_list, nlm_link)
2779 nlm_resume_zone(g);