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

*** 386,405 **** * It's used because there exist a possibility of simultaneous * execution of NLM shutdown operation and host monitor/unmonitor * operations. * * struct nlm_nsm: ! * ns_sem: a semaphore for serialization network operations to statd * ns_knc: a kneconfig describing transport that is used for communication * ns_addr: an address of local statd we're talking to * ns_handle: an RPC handle used for talking to local statd using the status * monitor protocol (SM_PROG) * ns_addr_handle: an RPC handle used for talking to local statd using the * address registration protocol (NSM_ADDR_PROGRAM) */ struct nlm_nsm { ! ksema_t ns_sem; struct knetconfig ns_knc; /* (c) */ struct netbuf ns_addr; /* (c) */ CLIENT *ns_handle; /* (c) */ CLIENT *ns_addr_handle; /* (c) */ }; --- 386,405 ---- * It's used because there exist a possibility of simultaneous * execution of NLM shutdown operation and host monitor/unmonitor * operations. * * struct nlm_nsm: ! * ns_lock: a mutex for serialization network operations to statd * ns_knc: a kneconfig describing transport that is used for communication * ns_addr: an address of local statd we're talking to * ns_handle: an RPC handle used for talking to local statd using the status * monitor protocol (SM_PROG) * ns_addr_handle: an RPC handle used for talking to local statd using the * address registration protocol (NSM_ADDR_PROGRAM) */ struct nlm_nsm { ! kmutex_t ns_lock; struct knetconfig ns_knc; /* (c) */ struct netbuf ns_addr; /* (c) */ CLIENT *ns_handle; /* (c) */ CLIENT *ns_addr_handle; /* (c) */ };