Lines Matching refs:nsm
62 static inline struct sockaddr *nsm_addr(const struct nsm_handle *nsm) in nsm_addr() argument
64 return (struct sockaddr *)&nsm->sm_addr; in nsm_addr()
89 static int nsm_mon_unmon(struct nsm_handle *nsm, u32 proc, struct nsm_res *res, in nsm_mon_unmon() argument
95 .priv = &nsm->sm_priv, in nsm_mon_unmon()
99 .mon_name = nsm->sm_mon_name, in nsm_mon_unmon()
147 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_monitor() local
151 dprintk("lockd: nsm_monitor(%s)\n", nsm->sm_name); in nsm_monitor()
153 if (nsm->sm_monitored) in nsm_monitor()
160 nsm->sm_mon_name = nsm_use_hostnames ? nsm->sm_name : nsm->sm_addrbuf; in nsm_monitor()
162 status = nsm_mon_unmon(nsm, NSMPROC_MON, &res, host); in nsm_monitor()
166 pr_notice_ratelimited("lockd: cannot monitor %s\n", nsm->sm_name); in nsm_monitor()
170 nsm->sm_monitored = 1; in nsm_monitor()
188 struct nsm_handle *nsm = host->h_nsmhandle; in nsm_unmonitor() local
192 if (atomic_read(&nsm->sm_count) == 1 in nsm_unmonitor()
193 && nsm->sm_monitored && !nsm->sm_sticky) { in nsm_unmonitor()
194 dprintk("lockd: nsm_unmonitor(%s)\n", nsm->sm_name); in nsm_unmonitor()
196 status = nsm_mon_unmon(nsm, NSMPROC_UNMON, &res, host); in nsm_unmonitor()
201 nsm->sm_name); in nsm_unmonitor()
203 nsm->sm_monitored = 0; in nsm_unmonitor()
210 struct nsm_handle *nsm; in nsm_lookup_hostname() local
212 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_hostname()
213 if (strlen(nsm->sm_name) == len && in nsm_lookup_hostname()
214 memcmp(nsm->sm_name, hostname, len) == 0) in nsm_lookup_hostname()
215 return nsm; in nsm_lookup_hostname()
222 struct nsm_handle *nsm; in nsm_lookup_addr() local
224 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_addr()
225 if (rpc_cmp_addr(nsm_addr(nsm), sap)) in nsm_lookup_addr()
226 return nsm; in nsm_lookup_addr()
233 struct nsm_handle *nsm; in nsm_lookup_priv() local
235 list_for_each_entry(nsm, nsm_handles, sm_link) in nsm_lookup_priv()
236 if (memcmp(nsm->sm_priv.data, priv->data, in nsm_lookup_priv()
238 return nsm; in nsm_lookup_priv()
259 static void nsm_init_private(struct nsm_handle *nsm) in nsm_init_private() argument
261 u64 *p = (u64 *)&nsm->sm_priv.data; in nsm_init_private()
266 put_unaligned((unsigned long)nsm, p + 1); in nsm_init_private()
403 void nsm_release(struct nsm_handle *nsm) in nsm_release() argument
405 if (atomic_dec_and_lock(&nsm->sm_count, &nsm_lock)) { in nsm_release()
406 list_del(&nsm->sm_link); in nsm_release()
409 nsm->sm_name, nsm->sm_addrbuf); in nsm_release()
410 kfree(nsm); in nsm_release()