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