Lines Matching refs:nsm

63 static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm)  in nsm_addr()  argument
65 return (struct sockaddr *)&nsm->sm_addr; in nsm_addr()
91 static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res, in nsm_mon_unmon() argument
97 .priv = &nsm->sm_priv, in nsm_mon_unmon()
101 .mon_name = nsm->sm_mon_name, in nsm_mon_unmon()
150 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_monitor() local
154 dprintk("lockd: nsm_monitor(%s)\n", nsm->sm_name); in nsm_monitor()
156 if (nsm->sm_monitored) in nsm_monitor()
163 nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; in nsm_monitor()
165 status = nsm_mon_unmon(nsm, NSMPROC_MON, &res, host); in nsm_monitor()
169 pr_notice_ratelimited("lockd: cannot monitor %s\n", nsm->sm_name); in nsm_monitor()
173 nsm->sm_monitored = 1; in nsm_monitor()
191 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_unmonitor() local
195 if (refcount_read(&nsm->sm_count) == 1 in nsm_unmonitor()
196 && nsm->sm_monitored && !nsm->sm_sticky) { in nsm_unmonitor()
197 dprintk("lockd: nsm_unmonitor(%s)\n", nsm->sm_name); in nsm_unmonitor()
199 status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res, host); in nsm_unmonitor()
204 nsm->sm_name); in nsm_unmonitor()
206 nsm->sm_monitored = 0; in nsm_unmonitor()
213 struct nsm_handle *nsm; in nsm_lookup_hostname() local
215 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_hostname()
216 if (strlen(nsm->sm_name) == len && in nsm_lookup_hostname()
217 memcmp(nsm->sm_name, hostname, len) == 0) in nsm_lookup_hostname()
218 return nsm; in nsm_lookup_hostname()
225 struct nsm_handle *nsm; in nsm_lookup_addr() local
227 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_addr()
228 if (rpc_cmp_addr(nsm_addr(nsm), sap)) in nsm_lookup_addr()
229 return nsm; in nsm_lookup_addr()
236 struct nsm_handle *nsm; in nsm_lookup_priv() local
238 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_priv()
239 if (memcmp(nsm->sm_priv.data, priv->data, in nsm_lookup_priv()
241 return nsm; in nsm_lookup_priv()
262 static void nsm_init_private(struct nsm_handle *nsm) in nsm_init_private() argument
264 u64 *p = (u64 *)&nsm->sm_priv.data; in nsm_init_private()
269 put_unaligned((unsigned long)nsm, p + 1); in nsm_init_private()
409 void nsm_release(struct nsm_handle *nsm) in nsm_release() argument
411 if (refcount_dec_and_lock(&nsm->sm_count, &nsm_lock)) { in nsm_release()
412 list_del(&nsm->sm_link); in nsm_release()
415 nsm->sm_name, nsm->sm_addrbuf); in nsm_release()
416 kfree(nsm); in nsm_release()