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()
374 while ((hostp = TAILQ_FIRST(&g->nlm_idle_hosts)) != NULL) { in nlm_gc()
386 mutex_exit(&g->lock); in nlm_gc()
398 mutex_enter(&g->lock); in nlm_gc()
418 TAILQ_REMOVE(&g->nlm_idle_hosts, in nlm_gc()
421 TAILQ_INSERT_TAIL(&g->nlm_idle_hosts, in nlm_gc()
435 nlm_host_unregister(g, hostp); in nlm_gc()
436 mutex_exit(&g->lock); in nlm_gc()
438 nlm_host_unmonitor(g, hostp); in nlm_gc()
440 mutex_enter(&g->lock); in nlm_gc()
441 if (g->run_status == NLM_ST_STOPPING) in nlm_gc()
449 DTRACE_PROBE1(gc__exit, struct nlm_globals *, g); in nlm_gc()
452 g->nlm_gc_thread = NULL; in nlm_gc()
453 mutex_exit(&g->lock); in nlm_gc()
455 cv_broadcast(&g->nlm_gc_finish_cv); in nlm_gc()
466 struct nlm_globals *g; in nlm_reclaimer() local
472 g = zone_getspecific(nlm_zone_key, curzone); in nlm_reclaimer()
473 nlm_reclaim_client(g, hostp); in nlm_reclaimer()
486 nlm_host_release(g, hostp); in nlm_reclaimer()
563 nlm_suspend_zone(struct nlm_globals *g) in nlm_suspend_zone() argument
580 mutex_enter(&g->lock); in nlm_suspend_zone()
581 for (hostp = avl_first(&g->nlm_hosts_tree); hostp != NULL; in nlm_suspend_zone()
582 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp)) { in nlm_suspend_zone()
589 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link); in nlm_suspend_zone()
603 mutex_exit(&g->lock); in nlm_suspend_zone()
625 nlm_resume_zone(struct nlm_globals *g) in nlm_resume_zone() argument
629 mutex_enter(&g->lock); in nlm_resume_zone()
630 hostp = avl_first(&g->nlm_hosts_tree); in nlm_resume_zone()
645 h_next = AVL_NEXT(&g->nlm_hosts_tree, hostp); in nlm_resume_zone()
646 mutex_exit(&g->lock); in nlm_resume_zone()
696 nlm_client_cancel_all(g, hostp); in nlm_resume_zone()
700 nlm_host_release(g, hostp); in nlm_resume_zone()
702 mutex_enter(&g->lock); in nlm_resume_zone()
705 mutex_exit(&g->lock); in nlm_resume_zone()
1139 nlm_host_unregister(struct nlm_globals *g, struct nlm_host *hostp) in nlm_host_unregister() argument
1144 avl_remove(&g->nlm_hosts_tree, hostp); in nlm_host_unregister()
1145 VERIFY(mod_hash_remove(g->nlm_hosts_hash, in nlm_host_unregister()
1148 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link); in nlm_host_unregister()
1289 struct nlm_globals *g; in nlm_host_wait_grace() local
1292 g = zone_getspecific(nlm_zone_key, curzone); in nlm_host_wait_grace()
1300 SEC_TO_TICK(g->retrans_tmo)); in nlm_host_wait_grace()
1356 nlm_host_cancel_slocks(struct nlm_globals *g, struct nlm_host *hostp) in nlm_host_cancel_slocks() argument
1360 mutex_enter(&g->lock); in nlm_host_cancel_slocks()
1361 TAILQ_FOREACH(nslp, &g->nlm_slocks, nsl_link) { in nlm_host_cancel_slocks()
1368 mutex_exit(&g->lock); in nlm_host_cancel_slocks()
1555 nlm_host_find_locked(struct nlm_globals *g, const char *netid, in nlm_host_find_locked() argument
1561 ASSERT(MUTEX_HELD(&g->lock)); in nlm_host_find_locked()
1568 hostp = avl_find(&g->nlm_hosts_tree, &key, &pos); in nlm_host_find_locked()
1576 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link); in nlm_host_find_locked()
1592 nlm_host_find(struct nlm_globals *g, const char *netid, in nlm_host_find() argument
1597 mutex_enter(&g->lock); in nlm_host_find()
1598 if (g->run_status != NLM_ST_UP) in nlm_host_find()
1601 hostp = nlm_host_find_locked(g, netid, addr, NULL); in nlm_host_find()
1604 mutex_exit(&g->lock); in nlm_host_find()
1618 nlm_host_findcreate(struct nlm_globals *g, char *name, in nlm_host_findcreate() argument
1626 mutex_enter(&g->lock); in nlm_host_findcreate()
1627 if (g->run_status != NLM_ST_UP) { in nlm_host_findcreate()
1628 mutex_exit(&g->lock); in nlm_host_findcreate()
1632 host = nlm_host_find_locked(g, netid, addr, NULL); in nlm_host_findcreate()
1633 mutex_exit(&g->lock); in nlm_host_findcreate()
1649 mutex_enter(&g->lock); in nlm_host_findcreate()
1650 host = nlm_host_find_locked(g, netid, addr, &where); in nlm_host_findcreate()
1659 avl_insert(&g->nlm_hosts_tree, host, where); in nlm_host_findcreate()
1665 VERIFY(mod_hash_insert(g->nlm_hosts_hash, in nlm_host_findcreate()
1670 mutex_exit(&g->lock); in nlm_host_findcreate()
1692 nlm_host_find_by_sysid(struct nlm_globals *g, sysid_t sysid) in nlm_host_find_by_sysid() argument
1696 mutex_enter(&g->lock); in nlm_host_find_by_sysid()
1697 if (g->run_status != NLM_ST_UP) in nlm_host_find_by_sysid()
1700 (void) mod_hash_find(g->nlm_hosts_hash, in nlm_host_find_by_sysid()
1712 TAILQ_REMOVE(&g->nlm_idle_hosts, hostp, nh_link); in nlm_host_find_by_sysid()
1719 mutex_exit(&g->lock); in nlm_host_find_by_sysid()
1737 nlm_host_release(struct nlm_globals *g, struct nlm_host *hostp) in nlm_host_release() argument
1742 mutex_enter(&g->lock); in nlm_host_release()
1747 mutex_exit(&g->lock); in nlm_host_release()
1757 SEC_TO_TICK(g->cn_idle_tmo); in nlm_host_release()
1760 TAILQ_INSERT_TAIL(&g->nlm_idle_hosts, hostp, nh_link); in nlm_host_release()
1762 mutex_exit(&g->lock); in nlm_host_release()
1770 nlm_host_unmonitor(struct nlm_globals *g, struct nlm_host *host) in nlm_host_unmonitor() argument
1779 stat = nlm_nsm_unmon(&g->nlm_nsm, host->nh_name); in nlm_host_unmonitor()
1793 nlm_host_monitor(struct nlm_globals *g, struct nlm_host *host, int state) in nlm_host_monitor() argument
1822 stat = nlm_nsmaddr_reg(&g->nlm_nsm, host->nh_name, family, &obj); in nlm_host_monitor()
1825 mutex_enter(&g->lock); in nlm_host_monitor()
1827 mutex_exit(&g->lock); in nlm_host_monitor()
1840 stat = nlm_nsm_mon(&g->nlm_nsm, host->nh_name, host->nh_sysid); in nlm_host_monitor()
1843 mutex_enter(&g->lock); in nlm_host_monitor()
1845 mutex_exit(&g->lock); in nlm_host_monitor()
1874 struct nlm_globals *g, in nlm_slock_register() argument
1889 mutex_enter(&g->lock); in nlm_slock_register()
1890 TAILQ_INSERT_TAIL(&g->nlm_slocks, nslp, nsl_link); in nlm_slock_register()
1891 mutex_exit(&g->lock); in nlm_slock_register()
1900 nlm_slock_unregister(struct nlm_globals *g, struct nlm_slock *nslp) in nlm_slock_unregister() argument
1902 mutex_enter(&g->lock); in nlm_slock_unregister()
1903 TAILQ_REMOVE(&g->nlm_slocks, nslp, nsl_link); in nlm_slock_unregister()
1904 mutex_exit(&g->lock); in nlm_slock_unregister()
1925 nlm_slock_wait(struct nlm_globals *g, in nlm_slock_wait() argument
1938 mutex_enter(&g->lock); in nlm_slock_wait()
1941 &g->lock, timeo_ticks); in nlm_slock_wait()
1971 mutex_exit(&g->lock); in nlm_slock_wait()
1984 nlm_slock_grant(struct nlm_globals *g, in nlm_slock_grant() argument
1990 mutex_enter(&g->lock); in nlm_slock_grant()
1991 TAILQ_FOREACH(nslp, &g->nlm_slocks, nsl_link) { in nlm_slock_grant()
2009 mutex_exit(&g->lock); in nlm_slock_grant()
2284 nlm_svc_starting(struct nlm_globals *g, struct file *fp, in nlm_svc_starting() argument
2290 VERIFY(g->run_status == NLM_ST_STARTING); in nlm_svc_starting()
2291 VERIFY(g->nlm_gc_thread == NULL); in nlm_svc_starting()
2293 error = nlm_nsm_init_local(&g->nlm_nsm); in nlm_svc_starting()
2297 g->run_status = NLM_ST_DOWN; in nlm_svc_starting()
2307 g->nlm_gc_thread = zthread_create(NULL, 0, nlm_gc, in nlm_svc_starting()
2308 g, 0, minclsyspri); in nlm_svc_starting()
2316 stat = nlm_nsm_simu_crash(&g->nlm_nsm); in nlm_svc_starting()
2323 stat = nlm_nsm_stat(&g->nlm_nsm, &g->nsm_state); in nlm_svc_starting()
2330 g->grace_threshold = ddi_get_lbolt() + in nlm_svc_starting()
2331 SEC_TO_TICK(g->grace_period); in nlm_svc_starting()
2340 g->run_status = NLM_ST_UP; in nlm_svc_starting()
2344 mutex_enter(&g->lock); in nlm_svc_starting()
2345 g->run_status = NLM_ST_STOPPING; in nlm_svc_starting()
2346 mutex_exit(&g->lock); in nlm_svc_starting()
2348 nlm_svc_stopping(g); in nlm_svc_starting()
2375 nlm_svc_stopping(struct nlm_globals *g) in nlm_svc_stopping() argument
2377 mutex_enter(&g->lock); in nlm_svc_stopping()
2378 ASSERT(g->run_status == NLM_ST_STOPPING); in nlm_svc_stopping()
2383 cv_signal(&g->nlm_gc_sched_cv); in nlm_svc_stopping()
2384 while (g->nlm_gc_thread != NULL) in nlm_svc_stopping()
2385 cv_wait(&g->nlm_gc_finish_cv, &g->lock); in nlm_svc_stopping()
2387 mutex_exit(&g->lock); in nlm_svc_stopping()
2394 while (!avl_is_empty(&g->nlm_hosts_tree)) { in nlm_svc_stopping()
2402 hostp = avl_first(&g->nlm_hosts_tree); in nlm_svc_stopping()
2405 nlm_client_cancel_all(g, hostp); in nlm_svc_stopping()
2418 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp); in nlm_svc_stopping()
2424 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp); in nlm_svc_stopping()
2434 while ((hostp = TAILQ_FIRST(&g->nlm_idle_hosts)) != NULL) { in nlm_svc_stopping()
2435 nlm_host_unregister(g, hostp); in nlm_svc_stopping()
2450 ASSERT(TAILQ_EMPTY(&g->nlm_slocks)); in nlm_svc_stopping()
2452 nlm_nsm_fini(&g->nlm_nsm); in nlm_svc_stopping()
2453 g->lockd_pid = 0; in nlm_svc_stopping()
2454 g->run_status = NLM_ST_DOWN; in nlm_svc_stopping()
2464 struct nlm_globals *g; in nlm_vp_active() local
2469 g = zone_getspecific(nlm_zone_key, curzone); in nlm_vp_active()
2476 mutex_enter(&g->lock); in nlm_vp_active()
2477 hostp = avl_first(&g->nlm_hosts_tree); in nlm_vp_active()
2487 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp); in nlm_vp_active()
2490 mutex_exit(&g->lock); in nlm_vp_active()
2504 struct nlm_globals *g; in nlm_unexport() local
2507 g = zone_getspecific(nlm_zone_key, curzone); in nlm_unexport()
2509 mutex_enter(&g->lock); in nlm_unexport()
2510 hostp = avl_first(&g->nlm_hosts_tree); in nlm_unexport()
2540 hostp = AVL_NEXT(&g->nlm_hosts_tree, hostp); in nlm_unexport()
2543 mutex_exit(&g->lock); in nlm_unexport()
2689 struct nlm_globals *g; in nlm_cprsuspend() local
2692 TAILQ_FOREACH(g, &nlm_zones_list, nlm_link) in nlm_cprsuspend()
2693 nlm_suspend_zone(g); in nlm_cprsuspend()
2701 struct nlm_globals *g; in nlm_cprresume() local
2704 TAILQ_FOREACH(g, &nlm_zones_list, nlm_link) in nlm_cprresume()
2705 nlm_resume_zone(g); in nlm_cprresume()