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) */
};