Print this page
XXXXX convert NLM's single-count semaphore to a mutex
@@ -861,11 +861,11 @@
NSM_ADDR_V1, 0, NLM_RPC_RETRIES, zone_kcred(),
&nsm->ns_addr_handle);
if (error != 0)
goto error;
- sema_init(&nsm->ns_sem, 1, NULL, SEMA_DEFAULT, NULL);
+ mutex_init(&nsm->ns_lock, NULL, MUTEX_DEFAULT, NULL);
return (0);
error:
kmem_free(nsm->ns_addr.buf, nsm->ns_addr.maxlen);
if (nsm->ns_handle) {
@@ -887,22 +887,22 @@
nsm->ns_addr_handle = NULL;
if (nsm->ns_handle->cl_auth != NULL)
auth_destroy(nsm->ns_handle->cl_auth);
CLNT_DESTROY(nsm->ns_handle);
nsm->ns_handle = NULL;
- sema_destroy(&nsm->ns_sem);
+ mutex_destroy(&nsm->ns_lock);
}
static enum clnt_stat
nlm_nsm_simu_crash(struct nlm_nsm *nsm)
{
enum clnt_stat stat;
- sema_p(&nsm->ns_sem);
+ mutex_enter(&nsm->ns_lock);
nlm_nsm_clnt_init(nsm->ns_handle, nsm);
stat = sm_simu_crash_1(NULL, NULL, nsm->ns_handle);
- sema_v(&nsm->ns_sem);
+ mutex_exit(&nsm->ns_lock);
return (stat);
}
static enum clnt_stat
@@ -913,14 +913,14 @@
enum clnt_stat stat;
args.mon_name = uts_nodename();
bzero(&res, sizeof (res));
- sema_p(&nsm->ns_sem);
+ mutex_enter(&nsm->ns_lock);
nlm_nsm_clnt_init(nsm->ns_handle, nsm);
stat = sm_stat_1(&args, &res, nsm->ns_handle);
- sema_v(&nsm->ns_sem);
+ mutex_exit(&nsm->ns_lock);
if (stat == RPC_SUCCESS)
*out_stat = res.state;
return (stat);
@@ -941,14 +941,14 @@
args.mon_id.my_id.my_prog = NLM_PROG;
args.mon_id.my_id.my_vers = NLM_SM;
args.mon_id.my_id.my_proc = NLM_SM_NOTIFY1;
bcopy(&priv, args.priv, sizeof (priv));
- sema_p(&nsm->ns_sem);
+ mutex_enter(&nsm->ns_lock);
nlm_nsm_clnt_init(nsm->ns_handle, nsm);
stat = sm_mon_1(&args, &res, nsm->ns_handle);
- sema_v(&nsm->ns_sem);
+ mutex_exit(&nsm->ns_lock);
return (stat);
}
static enum clnt_stat
@@ -965,14 +965,14 @@
args.my_id.my_name = uts_nodename();
args.my_id.my_prog = NLM_PROG;
args.my_id.my_vers = NLM_SM;
args.my_id.my_proc = NLM_SM_NOTIFY1;
- sema_p(&nsm->ns_sem);
+ mutex_enter(&nsm->ns_lock);
nlm_nsm_clnt_init(nsm->ns_handle, nsm);
stat = sm_unmon_1(&args, &res, nsm->ns_handle);
- sema_v(&nsm->ns_sem);
+ mutex_exit(&nsm->ns_lock);
return (stat);
}
static enum clnt_stat
@@ -984,14 +984,14 @@
args.family = family;
args.name = name;
args.address = *address;
- sema_p(&nsm->ns_sem);
+ mutex_enter(&nsm->ns_lock);
nlm_nsm_clnt_init(nsm->ns_addr_handle, nsm);
stat = nsmaddrproc1_reg_1(&args, &res, nsm->ns_addr_handle);
- sema_v(&nsm->ns_sem);
+ mutex_exit(&nsm->ns_lock);
return (stat);
}
/*