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