Print this page
XXXXX convert NLM's single-count semaphore to a mutex

*** 309,319 **** mip->my_id.my_proc = LX_NLMPROC_NSM_NOTIFY; if (op == SM_MON) { bcopy(&host->nh_sysid, args.priv, sizeof (uint16_t)); } ! sema_p(&nsm->ns_sem); nlm_nsm_clnt_init(nsm->ns_handle, nsm); if (op == SM_MON) { struct sm_stat_res mres; bzero(&mres, sizeof (mres)); --- 309,319 ---- mip->my_id.my_proc = LX_NLMPROC_NSM_NOTIFY; if (op == SM_MON) { bcopy(&host->nh_sysid, args.priv, sizeof (uint16_t)); } ! mutex_enter(&nsm->ns_lock); nlm_nsm_clnt_init(nsm->ns_handle, nsm); if (op == SM_MON) { struct sm_stat_res mres; bzero(&mres, sizeof (mres));
*** 323,333 **** ASSERT(op == SM_UNMON); bzero(&ures, sizeof (ures)); stat = sm_unmon_1(mip, &ures, nsm->ns_handle); } ! sema_v(&nsm->ns_sem); if (stat != RPC_SUCCESS) { NLM_WARN("Failed to contact local statd, stat=%d", stat); if (op == SM_MON) { mutex_enter(&g->lock); --- 323,333 ---- ASSERT(op == SM_UNMON); bzero(&ures, sizeof (ures)); stat = sm_unmon_1(mip, &ures, nsm->ns_handle); } ! mutex_exit(&nsm->ns_lock); if (stat != RPC_SUCCESS) { NLM_WARN("Failed to contact local statd, stat=%d", stat); if (op == SM_MON) { mutex_enter(&g->lock);