Lines Matching refs:g

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