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()
142 static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res, in nsm_mon_unmon() argument
147 .priv = &nsm->sm_priv, in nsm_mon_unmon()
151 .mon_name = nsm->sm_mon_name, in nsm_mon_unmon()
190 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_monitor() local
196 dprintk("lockd: nsm_monitor(%s)\n", nsm->sm_name); in nsm_monitor()
198 if (nsm->sm_monitored) in nsm_monitor()
208 nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; in nsm_monitor()
218 status = nsm_mon_unmon(nsm, NSMPROC_MON, &res, clnt); in nsm_monitor()
222 pr_notice_ratelimited("lockd: cannot monitor %s\n", nsm->sm_name); in nsm_monitor()
226 nsm->sm_monitored = 1; in nsm_monitor()
244 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_unmonitor() local
248 if (atomic_read(&nsm->sm_count) == 1 in nsm_unmonitor()
249 && nsm->sm_monitored && !nsm->sm_sticky) { in nsm_unmonitor()
252 dprintk("lockd: nsm_unmonitor(%s)\n", nsm->sm_name); in nsm_unmonitor()
254 status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res, ln->nsm_clnt); in nsm_unmonitor()
259 nsm->sm_name); in nsm_unmonitor()
261 nsm->sm_monitored = 0; in nsm_unmonitor()
270 struct nsm_handle *nsm; in nsm_lookup_hostname() local
272 list_for_each_entry(nsm, &nsm_handles, sm_link) in nsm_lookup_hostname()
273 if (strlen(nsm->sm_name) == len && in nsm_lookup_hostname()
274 memcmp(nsm->sm_name, hostname, len) == 0) in nsm_lookup_hostname()
275 return nsm; in nsm_lookup_hostname()
281 struct nsm_handle *nsm; in nsm_lookup_addr() local
283 list_for_each_entry(nsm, &nsm_handles, sm_link) in nsm_lookup_addr()
284 if (rpc_cmp_addr(nsm_addr(nsm), sap)) in nsm_lookup_addr()
285 return nsm; in nsm_lookup_addr()
291 struct nsm_handle *nsm; in nsm_lookup_priv() local
293 list_for_each_entry(nsm, &nsm_handles, sm_link) in nsm_lookup_priv()
294 if (memcmp(nsm->sm_priv.data, priv->data, in nsm_lookup_priv()
296 return nsm; in nsm_lookup_priv()
317 static void nsm_init_private(struct nsm_handle *nsm) in nsm_init_private() argument
319 u64 *p = (u64 *)&nsm->sm_priv.data; in nsm_init_private()
324 put_unaligned((unsigned long)nsm, p + 1); in nsm_init_private()
454 void nsm_release(struct nsm_handle *nsm) in nsm_release() argument
456 if (atomic_dec_and_lock(&nsm->sm_count, &nsm_lock)) { in nsm_release()
457 list_del(&nsm->sm_link); in nsm_release()
460 nsm->sm_name, nsm->sm_addrbuf); in nsm_release()
461 kfree(nsm); in nsm_release()