xref: /freebsd/sys/nlm/nlm_prot_server.c (revision 29363fb446372cb3f10bc98664e9767c53fbb457)
1dfdcada3SDoug Rabson /*-
2*4d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3fe267a55SPedro F. Giffuni  *
4dfdcada3SDoug Rabson  * Copyright (c) 2008 Isilon Inc http://www.isilon.com/
5dfdcada3SDoug Rabson  * Authors: Doug Rabson <dfr@rabson.org>
6dfdcada3SDoug Rabson  * Developed with Red Inc: Alfred Perlstein <alfred@freebsd.org>
7dfdcada3SDoug Rabson  *
8dfdcada3SDoug Rabson  * Redistribution and use in source and binary forms, with or without
9dfdcada3SDoug Rabson  * modification, are permitted provided that the following conditions
10dfdcada3SDoug Rabson  * are met:
11dfdcada3SDoug Rabson  * 1. Redistributions of source code must retain the above copyright
12dfdcada3SDoug Rabson  *    notice, this list of conditions and the following disclaimer.
13dfdcada3SDoug Rabson  * 2. Redistributions in binary form must reproduce the above copyright
14dfdcada3SDoug Rabson  *    notice, this list of conditions and the following disclaimer in the
15dfdcada3SDoug Rabson  *    documentation and/or other materials provided with the distribution.
16dfdcada3SDoug Rabson  *
17dfdcada3SDoug Rabson  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18dfdcada3SDoug Rabson  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19dfdcada3SDoug Rabson  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20dfdcada3SDoug Rabson  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
21dfdcada3SDoug Rabson  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22dfdcada3SDoug Rabson  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23dfdcada3SDoug Rabson  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24dfdcada3SDoug Rabson  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25dfdcada3SDoug Rabson  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26dfdcada3SDoug Rabson  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27dfdcada3SDoug Rabson  * SUCH DAMAGE.
28dfdcada3SDoug Rabson  */
29dfdcada3SDoug Rabson 
30dfdcada3SDoug Rabson #include <sys/cdefs.h>
31dfdcada3SDoug Rabson #ifndef lint
32dfdcada3SDoug Rabson __RCSID("$NetBSD: nlm_prot.x,v 1.6 2000/06/07 14:30:15 bouyer Exp $");
33dfdcada3SDoug Rabson #endif /* not lint */
34dfdcada3SDoug Rabson #include <sys/param.h>
35dfdcada3SDoug Rabson #include <sys/malloc.h>
36dfdcada3SDoug Rabson #include <sys/systm.h>
37dfdcada3SDoug Rabson 
38ee31b83aSDoug Rabson #include <nlm/nlm_prot.h>
39ee31b83aSDoug Rabson #include <nlm/nlm.h>
40dfdcada3SDoug Rabson 
41dfdcada3SDoug Rabson /**********************************************************************/
42dfdcada3SDoug Rabson 
43dfdcada3SDoug Rabson /*
44dfdcada3SDoug Rabson  * Convert between various versions of the protocol structures.
45dfdcada3SDoug Rabson  */
46dfdcada3SDoug Rabson 
47dfdcada3SDoug Rabson static void
nlm_convert_to_nlm4_lock(struct nlm4_lock * dst,struct nlm_lock * src)48dfdcada3SDoug Rabson nlm_convert_to_nlm4_lock(struct nlm4_lock *dst, struct nlm_lock *src)
49dfdcada3SDoug Rabson {
50dfdcada3SDoug Rabson 
51dfdcada3SDoug Rabson 	dst->caller_name = src->caller_name;
52dfdcada3SDoug Rabson 	dst->fh = src->fh;
53dfdcada3SDoug Rabson 	dst->oh = src->oh;
54dfdcada3SDoug Rabson 	dst->svid = src->svid;
55dfdcada3SDoug Rabson 	dst->l_offset = src->l_offset;
56dfdcada3SDoug Rabson 	dst->l_len = src->l_len;
57dfdcada3SDoug Rabson }
58dfdcada3SDoug Rabson 
59dfdcada3SDoug Rabson static void
nlm_convert_to_nlm4_share(struct nlm4_share * dst,struct nlm_share * src)60dfdcada3SDoug Rabson nlm_convert_to_nlm4_share(struct nlm4_share *dst, struct nlm_share *src)
61dfdcada3SDoug Rabson {
62dfdcada3SDoug Rabson 
63dfdcada3SDoug Rabson 	dst->caller_name = src->caller_name;
64dfdcada3SDoug Rabson 	dst->fh = src->fh;
65dfdcada3SDoug Rabson 	dst->oh = src->oh;
66dfdcada3SDoug Rabson 	dst->mode = src->mode;
67dfdcada3SDoug Rabson 	dst->access = src->access;
68dfdcada3SDoug Rabson }
69dfdcada3SDoug Rabson 
70dfdcada3SDoug Rabson static void
nlm_convert_to_nlm_holder(struct nlm_holder * dst,struct nlm4_holder * src)71dfdcada3SDoug Rabson nlm_convert_to_nlm_holder(struct nlm_holder *dst, struct nlm4_holder *src)
72dfdcada3SDoug Rabson {
73dfdcada3SDoug Rabson 
74dfdcada3SDoug Rabson 	dst->exclusive = src->exclusive;
75dfdcada3SDoug Rabson 	dst->svid = src->svid;
76dfdcada3SDoug Rabson 	dst->oh = src->oh;
77dfdcada3SDoug Rabson 	dst->l_offset = src->l_offset;
78dfdcada3SDoug Rabson 	dst->l_len = src->l_len;
79dfdcada3SDoug Rabson }
80dfdcada3SDoug Rabson 
81dfdcada3SDoug Rabson static void
nlm_convert_to_nlm4_holder(struct nlm4_holder * dst,struct nlm_holder * src)82dfdcada3SDoug Rabson nlm_convert_to_nlm4_holder(struct nlm4_holder *dst, struct nlm_holder *src)
83dfdcada3SDoug Rabson {
84dfdcada3SDoug Rabson 
85dfdcada3SDoug Rabson 	dst->exclusive = src->exclusive;
86dfdcada3SDoug Rabson 	dst->svid = src->svid;
87dfdcada3SDoug Rabson 	dst->oh = src->oh;
88dfdcada3SDoug Rabson 	dst->l_offset = src->l_offset;
89dfdcada3SDoug Rabson 	dst->l_len = src->l_len;
90dfdcada3SDoug Rabson }
91dfdcada3SDoug Rabson 
92dfdcada3SDoug Rabson static enum nlm_stats
nlm_convert_to_nlm_stats(enum nlm4_stats src)93dfdcada3SDoug Rabson nlm_convert_to_nlm_stats(enum nlm4_stats src)
94dfdcada3SDoug Rabson {
95dfdcada3SDoug Rabson 	if (src > nlm4_deadlck)
96dfdcada3SDoug Rabson 		return nlm_denied;
97dfdcada3SDoug Rabson 	return (enum nlm_stats) src;
98dfdcada3SDoug Rabson }
99dfdcada3SDoug Rabson 
100dfdcada3SDoug Rabson static void
nlm_convert_to_nlm_res(struct nlm_res * dst,struct nlm4_res * src)101dfdcada3SDoug Rabson nlm_convert_to_nlm_res(struct nlm_res *dst, struct nlm4_res *src)
102dfdcada3SDoug Rabson {
103dfdcada3SDoug Rabson 	dst->cookie = src->cookie;
104dfdcada3SDoug Rabson 	dst->stat.stat = nlm_convert_to_nlm_stats(src->stat.stat);
105dfdcada3SDoug Rabson }
106dfdcada3SDoug Rabson 
107dfdcada3SDoug Rabson static void
nlm_convert_to_nlm4_res(struct nlm4_res * dst,struct nlm_res * src)108dfdcada3SDoug Rabson nlm_convert_to_nlm4_res(struct nlm4_res *dst, struct nlm_res *src)
109dfdcada3SDoug Rabson {
110dfdcada3SDoug Rabson 	dst->cookie = src->cookie;
111dfdcada3SDoug Rabson 	dst->stat.stat = (enum nlm4_stats) src->stat.stat;
112dfdcada3SDoug Rabson }
113dfdcada3SDoug Rabson 
114dfdcada3SDoug Rabson /**********************************************************************/
115dfdcada3SDoug Rabson 
116dfdcada3SDoug Rabson /*
117dfdcada3SDoug Rabson  * RPC server stubs.
118dfdcada3SDoug Rabson  */
119dfdcada3SDoug Rabson 
120dfdcada3SDoug Rabson bool_t
nlm_sm_notify_0_svc(struct nlm_sm_status * argp,void * result,struct svc_req * rqstp)121dfdcada3SDoug Rabson nlm_sm_notify_0_svc(struct nlm_sm_status *argp, void *result, struct svc_req *rqstp)
122dfdcada3SDoug Rabson {
123dfdcada3SDoug Rabson 	nlm_sm_notify(argp);
124dfdcada3SDoug Rabson 
125dfdcada3SDoug Rabson 	return (TRUE);
126dfdcada3SDoug Rabson }
127dfdcada3SDoug Rabson 
128dfdcada3SDoug Rabson bool_t
nlm_test_1_svc(struct nlm_testargs * argp,nlm_testres * result,struct svc_req * rqstp)129dfdcada3SDoug Rabson nlm_test_1_svc(struct nlm_testargs *argp, nlm_testres *result, struct svc_req *rqstp)
130dfdcada3SDoug Rabson {
131dfdcada3SDoug Rabson 	bool_t retval;
132dfdcada3SDoug Rabson 	nlm4_testargs args4;
133dfdcada3SDoug Rabson 	nlm4_testres res4;
134dfdcada3SDoug Rabson 
135dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
136dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
137dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
138dfdcada3SDoug Rabson 
139dfdcada3SDoug Rabson 	retval = nlm4_test_4_svc(&args4, &res4, rqstp);
140dfdcada3SDoug Rabson 	if (retval) {
141dfdcada3SDoug Rabson 		result->cookie = res4.cookie;
142dfdcada3SDoug Rabson 		result->stat.stat = nlm_convert_to_nlm_stats(res4.stat.stat);
143dfdcada3SDoug Rabson 		if (result->stat.stat == nlm_denied)
144dfdcada3SDoug Rabson 			nlm_convert_to_nlm_holder(
145dfdcada3SDoug Rabson 				&result->stat.nlm_testrply_u.holder,
146dfdcada3SDoug Rabson 				&res4.stat.nlm4_testrply_u.holder);
147dfdcada3SDoug Rabson 	}
148dfdcada3SDoug Rabson 
149dfdcada3SDoug Rabson 	return (retval);
150dfdcada3SDoug Rabson }
151dfdcada3SDoug Rabson 
152dfdcada3SDoug Rabson bool_t
nlm_lock_1_svc(struct nlm_lockargs * argp,nlm_res * result,struct svc_req * rqstp)153dfdcada3SDoug Rabson nlm_lock_1_svc(struct nlm_lockargs *argp, nlm_res *result, struct svc_req *rqstp)
154dfdcada3SDoug Rabson {
155dfdcada3SDoug Rabson 	bool_t retval;
156dfdcada3SDoug Rabson 	nlm4_lockargs args4;
157dfdcada3SDoug Rabson 	nlm4_res res4;
158dfdcada3SDoug Rabson 
159dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
160dfdcada3SDoug Rabson 	args4.block = argp->block;
161dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
162dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
163dfdcada3SDoug Rabson 	args4.reclaim = argp->reclaim;
164dfdcada3SDoug Rabson 	args4.state = argp->state;
165dfdcada3SDoug Rabson 
166dfdcada3SDoug Rabson 	retval = nlm4_lock_4_svc(&args4, &res4, rqstp);
167dfdcada3SDoug Rabson 	if (retval)
168dfdcada3SDoug Rabson 		nlm_convert_to_nlm_res(result, &res4);
169dfdcada3SDoug Rabson 
170dfdcada3SDoug Rabson 	return (retval);
171dfdcada3SDoug Rabson }
172dfdcada3SDoug Rabson 
173dfdcada3SDoug Rabson bool_t
nlm_cancel_1_svc(struct nlm_cancargs * argp,nlm_res * result,struct svc_req * rqstp)174dfdcada3SDoug Rabson nlm_cancel_1_svc(struct nlm_cancargs *argp, nlm_res *result, struct svc_req *rqstp)
175dfdcada3SDoug Rabson {
176dfdcada3SDoug Rabson 	bool_t retval;
177dfdcada3SDoug Rabson 	nlm4_cancargs args4;
178dfdcada3SDoug Rabson 	nlm4_res res4;
179dfdcada3SDoug Rabson 
180dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
181dfdcada3SDoug Rabson 	args4.block = argp->block;
182dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
183dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
184dfdcada3SDoug Rabson 
185dfdcada3SDoug Rabson 	retval = nlm4_cancel_4_svc(&args4, &res4, rqstp);
186dfdcada3SDoug Rabson 	if (retval)
187dfdcada3SDoug Rabson 		nlm_convert_to_nlm_res(result, &res4);
188dfdcada3SDoug Rabson 
189dfdcada3SDoug Rabson 	return (retval);
190dfdcada3SDoug Rabson }
191dfdcada3SDoug Rabson 
192dfdcada3SDoug Rabson bool_t
nlm_unlock_1_svc(struct nlm_unlockargs * argp,nlm_res * result,struct svc_req * rqstp)193dfdcada3SDoug Rabson nlm_unlock_1_svc(struct nlm_unlockargs *argp, nlm_res *result, struct svc_req *rqstp)
194dfdcada3SDoug Rabson {
195dfdcada3SDoug Rabson 	bool_t retval;
196dfdcada3SDoug Rabson 	nlm4_unlockargs args4;
197dfdcada3SDoug Rabson 	nlm4_res res4;
198dfdcada3SDoug Rabson 
199dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
200dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
201dfdcada3SDoug Rabson 
202dfdcada3SDoug Rabson 	retval = nlm4_unlock_4_svc(&args4, &res4, rqstp);
203dfdcada3SDoug Rabson 	if (retval)
204dfdcada3SDoug Rabson 		nlm_convert_to_nlm_res(result, &res4);
205dfdcada3SDoug Rabson 
206dfdcada3SDoug Rabson 	return (retval);
207dfdcada3SDoug Rabson }
208dfdcada3SDoug Rabson 
209dfdcada3SDoug Rabson bool_t
nlm_granted_1_svc(struct nlm_testargs * argp,nlm_res * result,struct svc_req * rqstp)210dfdcada3SDoug Rabson nlm_granted_1_svc(struct nlm_testargs *argp, nlm_res *result, struct svc_req *rqstp)
211dfdcada3SDoug Rabson {
212dfdcada3SDoug Rabson 	bool_t retval;
213dfdcada3SDoug Rabson 	nlm4_testargs args4;
214dfdcada3SDoug Rabson 	nlm4_res res4;
215dfdcada3SDoug Rabson 
216dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
217dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
218dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
219dfdcada3SDoug Rabson 
220dfdcada3SDoug Rabson 	retval = nlm4_granted_4_svc(&args4, &res4, rqstp);
221dfdcada3SDoug Rabson 	if (retval)
222dfdcada3SDoug Rabson 		nlm_convert_to_nlm_res(result, &res4);
223dfdcada3SDoug Rabson 
224dfdcada3SDoug Rabson 	return (retval);
225dfdcada3SDoug Rabson }
226dfdcada3SDoug Rabson 
227dfdcada3SDoug Rabson bool_t
nlm_test_msg_1_svc(struct nlm_testargs * argp,void * result,struct svc_req * rqstp)228dfdcada3SDoug Rabson nlm_test_msg_1_svc(struct nlm_testargs *argp, void *result, struct svc_req *rqstp)
229dfdcada3SDoug Rabson {
230dfdcada3SDoug Rabson 	nlm4_testargs args4;
231dfdcada3SDoug Rabson 	nlm4_testres res4;
232dfdcada3SDoug Rabson 	nlm_testres res;
233dfdcada3SDoug Rabson 	CLIENT *rpc;
234dfdcada3SDoug Rabson 	char dummy;
235dfdcada3SDoug Rabson 
236dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
237dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
238dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
239dfdcada3SDoug Rabson 
240c675522fSDoug Rabson 	if (nlm_do_test(&args4, &res4, rqstp, &rpc))
241c675522fSDoug Rabson 		return (FALSE);
242dfdcada3SDoug Rabson 
243dfdcada3SDoug Rabson 	res.cookie = res4.cookie;
244dfdcada3SDoug Rabson 	res.stat.stat = nlm_convert_to_nlm_stats(res4.stat.stat);
245dfdcada3SDoug Rabson 	if (res.stat.stat == nlm_denied)
246dfdcada3SDoug Rabson 		nlm_convert_to_nlm_holder(
247dfdcada3SDoug Rabson 			&res.stat.nlm_testrply_u.holder,
248dfdcada3SDoug Rabson 			&res4.stat.nlm4_testrply_u.holder);
249dfdcada3SDoug Rabson 
250c675522fSDoug Rabson 	if (rpc) {
251c675522fSDoug Rabson 		nlm_test_res_1(&res, &dummy, rpc, NULL, nlm_zero_tv);
252c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
253c675522fSDoug Rabson 	}
254dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm_testres, &res);
255dfdcada3SDoug Rabson 
256dfdcada3SDoug Rabson 	return (FALSE);
257dfdcada3SDoug Rabson }
258dfdcada3SDoug Rabson 
259dfdcada3SDoug Rabson bool_t
nlm_lock_msg_1_svc(struct nlm_lockargs * argp,void * result,struct svc_req * rqstp)260dfdcada3SDoug Rabson nlm_lock_msg_1_svc(struct nlm_lockargs *argp, void *result, struct svc_req *rqstp)
261dfdcada3SDoug Rabson {
262dfdcada3SDoug Rabson 	nlm4_lockargs args4;
263dfdcada3SDoug Rabson 	nlm4_res res4;
264dfdcada3SDoug Rabson 	nlm_res res;
265dfdcada3SDoug Rabson 	CLIENT *rpc;
266dfdcada3SDoug Rabson 	char dummy;
267dfdcada3SDoug Rabson 
268dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
269dfdcada3SDoug Rabson 	args4.block = argp->block;
270dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
271dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
272dfdcada3SDoug Rabson 	args4.reclaim = argp->reclaim;
273dfdcada3SDoug Rabson 	args4.state = argp->state;
274dfdcada3SDoug Rabson 
275c675522fSDoug Rabson 	if (nlm_do_lock(&args4, &res4, rqstp, TRUE, &rpc))
276c675522fSDoug Rabson 		return (FALSE);
277dfdcada3SDoug Rabson 
278dfdcada3SDoug Rabson 	nlm_convert_to_nlm_res(&res, &res4);
279dfdcada3SDoug Rabson 
280c675522fSDoug Rabson 	if (rpc) {
281c675522fSDoug Rabson 		nlm_lock_res_1(&res, &dummy, rpc, NULL, nlm_zero_tv);
282c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
283c675522fSDoug Rabson 	}
284dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm_res, &res);
285dfdcada3SDoug Rabson 
286dfdcada3SDoug Rabson 	return (FALSE);
287dfdcada3SDoug Rabson }
288dfdcada3SDoug Rabson 
289dfdcada3SDoug Rabson bool_t
nlm_cancel_msg_1_svc(struct nlm_cancargs * argp,void * result,struct svc_req * rqstp)290dfdcada3SDoug Rabson nlm_cancel_msg_1_svc(struct nlm_cancargs *argp, void *result, struct svc_req *rqstp)
291dfdcada3SDoug Rabson {
292dfdcada3SDoug Rabson 	nlm4_cancargs args4;
293dfdcada3SDoug Rabson 	nlm4_res res4;
294dfdcada3SDoug Rabson 	nlm_res res;
295dfdcada3SDoug Rabson 	CLIENT *rpc;
296dfdcada3SDoug Rabson 	char dummy;
297dfdcada3SDoug Rabson 
298dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
299dfdcada3SDoug Rabson 	args4.block = argp->block;
300dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
301dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
302dfdcada3SDoug Rabson 
303c675522fSDoug Rabson 	if (nlm_do_cancel(&args4, &res4, rqstp, &rpc))
304c675522fSDoug Rabson 		return (FALSE);
305dfdcada3SDoug Rabson 
306dfdcada3SDoug Rabson 	nlm_convert_to_nlm_res(&res, &res4);
307dfdcada3SDoug Rabson 
308c675522fSDoug Rabson 	if (rpc) {
309c675522fSDoug Rabson 		nlm_cancel_res_1(&res, &dummy, rpc, NULL, nlm_zero_tv);
310c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
311c675522fSDoug Rabson 	}
312dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm_res, &res);
313dfdcada3SDoug Rabson 
314dfdcada3SDoug Rabson 	return (FALSE);
315dfdcada3SDoug Rabson }
316dfdcada3SDoug Rabson 
317dfdcada3SDoug Rabson bool_t
nlm_unlock_msg_1_svc(struct nlm_unlockargs * argp,void * result,struct svc_req * rqstp)318dfdcada3SDoug Rabson nlm_unlock_msg_1_svc(struct nlm_unlockargs *argp, void *result, struct svc_req *rqstp)
319dfdcada3SDoug Rabson {
320dfdcada3SDoug Rabson 	nlm4_unlockargs args4;
321dfdcada3SDoug Rabson 	nlm4_res res4;
322dfdcada3SDoug Rabson 	nlm_res res;
323dfdcada3SDoug Rabson 	CLIENT *rpc;
324dfdcada3SDoug Rabson 	char dummy;
325dfdcada3SDoug Rabson 
326dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
327dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
328dfdcada3SDoug Rabson 
329c675522fSDoug Rabson 	if (nlm_do_unlock(&args4, &res4, rqstp, &rpc))
330c675522fSDoug Rabson 		return (FALSE);
331dfdcada3SDoug Rabson 
332dfdcada3SDoug Rabson 	nlm_convert_to_nlm_res(&res, &res4);
333dfdcada3SDoug Rabson 
334c675522fSDoug Rabson 	if (rpc) {
335c675522fSDoug Rabson 		nlm_unlock_res_1(&res, &dummy, rpc, NULL, nlm_zero_tv);
336c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
337c675522fSDoug Rabson 	}
338dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm_res, &res);
339dfdcada3SDoug Rabson 
340dfdcada3SDoug Rabson 	return (FALSE);
341dfdcada3SDoug Rabson }
342dfdcada3SDoug Rabson 
343dfdcada3SDoug Rabson bool_t
nlm_granted_msg_1_svc(struct nlm_testargs * argp,void * result,struct svc_req * rqstp)344dfdcada3SDoug Rabson nlm_granted_msg_1_svc(struct nlm_testargs *argp, void *result, struct svc_req *rqstp)
345dfdcada3SDoug Rabson {
346dfdcada3SDoug Rabson 	nlm4_testargs args4;
347dfdcada3SDoug Rabson 	nlm4_res res4;
348dfdcada3SDoug Rabson 	nlm_res res;
349dfdcada3SDoug Rabson 	CLIENT *rpc;
350dfdcada3SDoug Rabson 	char dummy;
351dfdcada3SDoug Rabson 
352dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
353dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
354dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
355dfdcada3SDoug Rabson 
356c675522fSDoug Rabson 	if (nlm_do_granted(&args4, &res4, rqstp, &rpc))
357c675522fSDoug Rabson 		return (FALSE);
358dfdcada3SDoug Rabson 
359dfdcada3SDoug Rabson 	nlm_convert_to_nlm_res(&res, &res4);
360dfdcada3SDoug Rabson 
361c675522fSDoug Rabson 	if (rpc) {
362c675522fSDoug Rabson 		nlm_granted_res_1(&res, &dummy, rpc, NULL, nlm_zero_tv);
363c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
364c675522fSDoug Rabson 	}
365dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm_res, &res);
366dfdcada3SDoug Rabson 
367dfdcada3SDoug Rabson 	return (FALSE);
368dfdcada3SDoug Rabson }
369dfdcada3SDoug Rabson 
370dfdcada3SDoug Rabson bool_t
nlm_test_res_1_svc(nlm_testres * argp,void * result,struct svc_req * rqstp)371dfdcada3SDoug Rabson nlm_test_res_1_svc(nlm_testres *argp, void *result, struct svc_req *rqstp)
372dfdcada3SDoug Rabson {
373dfdcada3SDoug Rabson 	nlm4_testres args4;
374dfdcada3SDoug Rabson 
375dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
376dfdcada3SDoug Rabson 	if (argp->stat.stat == nlm_denied)
377dfdcada3SDoug Rabson 		nlm_convert_to_nlm4_holder(
378dfdcada3SDoug Rabson 			&args4.stat.nlm4_testrply_u.holder,
379dfdcada3SDoug Rabson 			&argp->stat.nlm_testrply_u.holder);
380dfdcada3SDoug Rabson 
381dfdcada3SDoug Rabson 	return (nlm4_test_res_4_svc(&args4, result, rqstp));
382dfdcada3SDoug Rabson }
383dfdcada3SDoug Rabson 
384dfdcada3SDoug Rabson bool_t
nlm_lock_res_1_svc(nlm_res * argp,void * result,struct svc_req * rqstp)385dfdcada3SDoug Rabson nlm_lock_res_1_svc(nlm_res *argp, void *result, struct svc_req *rqstp)
386dfdcada3SDoug Rabson {
387dfdcada3SDoug Rabson 	nlm4_res arg4;
388dfdcada3SDoug Rabson 
389dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_res(&arg4, argp);
390dfdcada3SDoug Rabson 	return (nlm4_lock_res_4_svc(&arg4, result, rqstp));
391dfdcada3SDoug Rabson }
392dfdcada3SDoug Rabson 
393dfdcada3SDoug Rabson bool_t
nlm_cancel_res_1_svc(nlm_res * argp,void * result,struct svc_req * rqstp)394dfdcada3SDoug Rabson nlm_cancel_res_1_svc(nlm_res *argp, void *result, struct svc_req *rqstp)
395dfdcada3SDoug Rabson {
396dfdcada3SDoug Rabson 	nlm4_res arg4;
397dfdcada3SDoug Rabson 
398dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_res(&arg4, argp);
399dfdcada3SDoug Rabson 	return (nlm4_cancel_res_4_svc(&arg4, result, rqstp));
400dfdcada3SDoug Rabson }
401dfdcada3SDoug Rabson 
402dfdcada3SDoug Rabson bool_t
nlm_unlock_res_1_svc(nlm_res * argp,void * result,struct svc_req * rqstp)403dfdcada3SDoug Rabson nlm_unlock_res_1_svc(nlm_res *argp, void *result, struct svc_req *rqstp)
404dfdcada3SDoug Rabson {
405dfdcada3SDoug Rabson 	nlm4_res arg4;
406dfdcada3SDoug Rabson 
407dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_res(&arg4, argp);
408dfdcada3SDoug Rabson 	return (nlm4_unlock_res_4_svc(&arg4, result, rqstp));
409dfdcada3SDoug Rabson }
410dfdcada3SDoug Rabson 
411dfdcada3SDoug Rabson bool_t
nlm_granted_res_1_svc(nlm_res * argp,void * result,struct svc_req * rqstp)412dfdcada3SDoug Rabson nlm_granted_res_1_svc(nlm_res *argp, void *result, struct svc_req *rqstp)
413dfdcada3SDoug Rabson {
414dfdcada3SDoug Rabson 	nlm4_res arg4;
415dfdcada3SDoug Rabson 
416dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_res(&arg4, argp);
417dfdcada3SDoug Rabson 	return (nlm4_granted_res_4_svc(&arg4, result, rqstp));
418dfdcada3SDoug Rabson }
419dfdcada3SDoug Rabson 
420dfdcada3SDoug Rabson int
nlm_prog_1_freeresult(SVCXPRT * transp,xdrproc_t xdr_result,caddr_t result)421dfdcada3SDoug Rabson nlm_prog_1_freeresult(SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result)
422dfdcada3SDoug Rabson {
423dfdcada3SDoug Rabson 
424dfdcada3SDoug Rabson 	(void) xdr_free(xdr_result, result);
425dfdcada3SDoug Rabson 	return (TRUE);
426dfdcada3SDoug Rabson }
427dfdcada3SDoug Rabson 
428dfdcada3SDoug Rabson bool_t
nlm_share_3_svc(nlm_shareargs * argp,nlm_shareres * result,struct svc_req * rqstp)429dfdcada3SDoug Rabson nlm_share_3_svc(nlm_shareargs *argp, nlm_shareres *result, struct svc_req *rqstp)
430dfdcada3SDoug Rabson {
431dfdcada3SDoug Rabson 	bool_t retval;
432dfdcada3SDoug Rabson 	nlm4_shareargs args4;
433dfdcada3SDoug Rabson 	nlm4_shareres res4;
434dfdcada3SDoug Rabson 
435dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
436dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_share(&args4.share, &argp->share);
437dfdcada3SDoug Rabson 	args4.reclaim = argp->reclaim;
438dfdcada3SDoug Rabson 
439dfdcada3SDoug Rabson 	retval = nlm4_share_4_svc(&args4, &res4, rqstp);
440dfdcada3SDoug Rabson 	if (retval) {
441dfdcada3SDoug Rabson 		result->cookie = res4.cookie;
442dfdcada3SDoug Rabson 		result->stat = nlm_convert_to_nlm_stats(res4.stat);
443dfdcada3SDoug Rabson 		result->sequence = res4.sequence;
444dfdcada3SDoug Rabson 	}
445dfdcada3SDoug Rabson 
446dfdcada3SDoug Rabson 	return (retval);
447dfdcada3SDoug Rabson }
448dfdcada3SDoug Rabson 
449dfdcada3SDoug Rabson bool_t
nlm_unshare_3_svc(nlm_shareargs * argp,nlm_shareres * result,struct svc_req * rqstp)450dfdcada3SDoug Rabson nlm_unshare_3_svc(nlm_shareargs *argp, nlm_shareres *result, struct svc_req *rqstp)
451dfdcada3SDoug Rabson {
452dfdcada3SDoug Rabson 	bool_t retval;
453dfdcada3SDoug Rabson 	nlm4_shareargs args4;
454dfdcada3SDoug Rabson 	nlm4_shareres res4;
455dfdcada3SDoug Rabson 
456dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
457dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_share(&args4.share, &argp->share);
458dfdcada3SDoug Rabson 	args4.reclaim = argp->reclaim;
459dfdcada3SDoug Rabson 
460dfdcada3SDoug Rabson 	retval = nlm4_unshare_4_svc(&args4, &res4, rqstp);
461dfdcada3SDoug Rabson 	if (retval) {
462dfdcada3SDoug Rabson 		result->cookie = res4.cookie;
463dfdcada3SDoug Rabson 		result->stat = nlm_convert_to_nlm_stats(res4.stat);
464dfdcada3SDoug Rabson 		result->sequence = res4.sequence;
465dfdcada3SDoug Rabson 	}
466dfdcada3SDoug Rabson 
467dfdcada3SDoug Rabson 	return (retval);
468dfdcada3SDoug Rabson }
469dfdcada3SDoug Rabson 
470dfdcada3SDoug Rabson bool_t
nlm_nm_lock_3_svc(nlm_lockargs * argp,nlm_res * result,struct svc_req * rqstp)471dfdcada3SDoug Rabson nlm_nm_lock_3_svc(nlm_lockargs *argp, nlm_res *result, struct svc_req *rqstp)
472dfdcada3SDoug Rabson {
473dfdcada3SDoug Rabson 	bool_t retval;
474dfdcada3SDoug Rabson 	nlm4_lockargs args4;
475dfdcada3SDoug Rabson 	nlm4_res res4;
476dfdcada3SDoug Rabson 
477dfdcada3SDoug Rabson 	args4.cookie = argp->cookie;
478dfdcada3SDoug Rabson 	args4.block = argp->block;
479dfdcada3SDoug Rabson 	args4.exclusive = argp->exclusive;
480dfdcada3SDoug Rabson 	nlm_convert_to_nlm4_lock(&args4.alock, &argp->alock);
481dfdcada3SDoug Rabson 	args4.reclaim = argp->reclaim;
482dfdcada3SDoug Rabson 	args4.state = argp->state;
483dfdcada3SDoug Rabson 
484dfdcada3SDoug Rabson 	retval = nlm4_nm_lock_4_svc(&args4, &res4, rqstp);
485dfdcada3SDoug Rabson 	if (retval)
486dfdcada3SDoug Rabson 		nlm_convert_to_nlm_res(result, &res4);
487dfdcada3SDoug Rabson 
488dfdcada3SDoug Rabson 	return (retval);
489dfdcada3SDoug Rabson }
490dfdcada3SDoug Rabson 
491dfdcada3SDoug Rabson bool_t
nlm_free_all_3_svc(nlm_notify * argp,void * result,struct svc_req * rqstp)492dfdcada3SDoug Rabson nlm_free_all_3_svc(nlm_notify *argp, void *result, struct svc_req *rqstp)
493dfdcada3SDoug Rabson {
494dfdcada3SDoug Rabson 	struct nlm4_notify args4;
495dfdcada3SDoug Rabson 
496dfdcada3SDoug Rabson 	args4.name = argp->name;
497dfdcada3SDoug Rabson 	args4.state = argp->state;
498dfdcada3SDoug Rabson 
499dfdcada3SDoug Rabson 	return (nlm4_free_all_4_svc(&args4, result, rqstp));
500dfdcada3SDoug Rabson }
501dfdcada3SDoug Rabson 
502dfdcada3SDoug Rabson int
nlm_prog_3_freeresult(SVCXPRT * transp,xdrproc_t xdr_result,caddr_t result)503dfdcada3SDoug Rabson nlm_prog_3_freeresult(SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result)
504dfdcada3SDoug Rabson {
505dfdcada3SDoug Rabson 
506dfdcada3SDoug Rabson 	(void) xdr_free(xdr_result, result);
507dfdcada3SDoug Rabson 	return (TRUE);
508dfdcada3SDoug Rabson }
509dfdcada3SDoug Rabson 
510dfdcada3SDoug Rabson bool_t
nlm4_test_4_svc(nlm4_testargs * argp,nlm4_testres * result,struct svc_req * rqstp)511dfdcada3SDoug Rabson nlm4_test_4_svc(nlm4_testargs *argp, nlm4_testres *result, struct svc_req *rqstp)
512dfdcada3SDoug Rabson {
513dfdcada3SDoug Rabson 
514c675522fSDoug Rabson 	nlm_do_test(argp, result, rqstp, NULL);
515dfdcada3SDoug Rabson 	return (TRUE);
516dfdcada3SDoug Rabson }
517dfdcada3SDoug Rabson 
518dfdcada3SDoug Rabson bool_t
nlm4_lock_4_svc(nlm4_lockargs * argp,nlm4_res * result,struct svc_req * rqstp)519dfdcada3SDoug Rabson nlm4_lock_4_svc(nlm4_lockargs *argp, nlm4_res *result, struct svc_req *rqstp)
520dfdcada3SDoug Rabson {
521dfdcada3SDoug Rabson 
522c675522fSDoug Rabson 	nlm_do_lock(argp, result, rqstp, TRUE, NULL);
523dfdcada3SDoug Rabson 	return (TRUE);
524dfdcada3SDoug Rabson }
525dfdcada3SDoug Rabson 
526dfdcada3SDoug Rabson bool_t
nlm4_cancel_4_svc(nlm4_cancargs * argp,nlm4_res * result,struct svc_req * rqstp)527dfdcada3SDoug Rabson nlm4_cancel_4_svc(nlm4_cancargs *argp, nlm4_res *result, struct svc_req *rqstp)
528dfdcada3SDoug Rabson {
529dfdcada3SDoug Rabson 
530c675522fSDoug Rabson 	nlm_do_cancel(argp, result, rqstp, NULL);
531dfdcada3SDoug Rabson 	return (TRUE);
532dfdcada3SDoug Rabson }
533dfdcada3SDoug Rabson 
534dfdcada3SDoug Rabson bool_t
nlm4_unlock_4_svc(nlm4_unlockargs * argp,nlm4_res * result,struct svc_req * rqstp)535dfdcada3SDoug Rabson nlm4_unlock_4_svc(nlm4_unlockargs *argp, nlm4_res *result, struct svc_req *rqstp)
536dfdcada3SDoug Rabson {
537dfdcada3SDoug Rabson 
538c675522fSDoug Rabson 	nlm_do_unlock(argp, result, rqstp, NULL);
539dfdcada3SDoug Rabson 	return (TRUE);
540dfdcada3SDoug Rabson }
541dfdcada3SDoug Rabson 
542dfdcada3SDoug Rabson bool_t
nlm4_granted_4_svc(nlm4_testargs * argp,nlm4_res * result,struct svc_req * rqstp)543dfdcada3SDoug Rabson nlm4_granted_4_svc(nlm4_testargs *argp, nlm4_res *result, struct svc_req *rqstp)
544dfdcada3SDoug Rabson {
545dfdcada3SDoug Rabson 
546c675522fSDoug Rabson 	nlm_do_granted(argp, result, rqstp, NULL);
547dfdcada3SDoug Rabson 	return (TRUE);
548dfdcada3SDoug Rabson }
549dfdcada3SDoug Rabson 
550dfdcada3SDoug Rabson bool_t
nlm4_test_msg_4_svc(nlm4_testargs * argp,void * result,struct svc_req * rqstp)551dfdcada3SDoug Rabson nlm4_test_msg_4_svc(nlm4_testargs *argp, void *result, struct svc_req *rqstp)
552dfdcada3SDoug Rabson {
553dfdcada3SDoug Rabson 	nlm4_testres res4;
554dfdcada3SDoug Rabson 	CLIENT *rpc;
555dfdcada3SDoug Rabson 	char dummy;
556dfdcada3SDoug Rabson 
557c675522fSDoug Rabson 	if (nlm_do_test(argp, &res4, rqstp, &rpc))
558c675522fSDoug Rabson 		return (FALSE);
559c675522fSDoug Rabson 	if (rpc) {
560c675522fSDoug Rabson 		nlm4_test_res_4(&res4, &dummy, rpc, NULL, nlm_zero_tv);
561c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
562c675522fSDoug Rabson 	}
563dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm4_testres, &res4);
564dfdcada3SDoug Rabson 
565dfdcada3SDoug Rabson 	return (FALSE);
566dfdcada3SDoug Rabson }
567dfdcada3SDoug Rabson 
568dfdcada3SDoug Rabson bool_t
nlm4_lock_msg_4_svc(nlm4_lockargs * argp,void * result,struct svc_req * rqstp)569dfdcada3SDoug Rabson nlm4_lock_msg_4_svc(nlm4_lockargs *argp, void *result, struct svc_req *rqstp)
570dfdcada3SDoug Rabson {
571dfdcada3SDoug Rabson 	nlm4_res res4;
572dfdcada3SDoug Rabson 	CLIENT *rpc;
573dfdcada3SDoug Rabson 	char dummy;
574dfdcada3SDoug Rabson 
575c675522fSDoug Rabson 	if (nlm_do_lock(argp, &res4, rqstp, TRUE, &rpc))
576c675522fSDoug Rabson 		return (FALSE);
577c675522fSDoug Rabson 	if (rpc) {
578c675522fSDoug Rabson 		nlm4_lock_res_4(&res4, &dummy, rpc, NULL, nlm_zero_tv);
579c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
580c675522fSDoug Rabson 	}
581dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm4_res, &res4);
582dfdcada3SDoug Rabson 
583dfdcada3SDoug Rabson 	return (FALSE);
584dfdcada3SDoug Rabson }
585dfdcada3SDoug Rabson 
586dfdcada3SDoug Rabson bool_t
nlm4_cancel_msg_4_svc(nlm4_cancargs * argp,void * result,struct svc_req * rqstp)587dfdcada3SDoug Rabson nlm4_cancel_msg_4_svc(nlm4_cancargs *argp, void *result, struct svc_req *rqstp)
588dfdcada3SDoug Rabson {
589dfdcada3SDoug Rabson 	nlm4_res res4;
590dfdcada3SDoug Rabson 	CLIENT *rpc;
591dfdcada3SDoug Rabson 	char dummy;
592dfdcada3SDoug Rabson 
593c675522fSDoug Rabson 	if (nlm_do_cancel(argp, &res4, rqstp, &rpc))
594c675522fSDoug Rabson 		return (FALSE);
595c675522fSDoug Rabson 	if (rpc) {
596c675522fSDoug Rabson 		nlm4_cancel_res_4(&res4, &dummy, rpc, NULL, nlm_zero_tv);
597c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
598c675522fSDoug Rabson 	}
599dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm4_res, &res4);
600dfdcada3SDoug Rabson 
601dfdcada3SDoug Rabson 	return (FALSE);
602dfdcada3SDoug Rabson }
603dfdcada3SDoug Rabson 
604dfdcada3SDoug Rabson bool_t
nlm4_unlock_msg_4_svc(nlm4_unlockargs * argp,void * result,struct svc_req * rqstp)605dfdcada3SDoug Rabson nlm4_unlock_msg_4_svc(nlm4_unlockargs *argp, void *result, struct svc_req *rqstp)
606dfdcada3SDoug Rabson {
607dfdcada3SDoug Rabson 	nlm4_res res4;
608dfdcada3SDoug Rabson 	CLIENT *rpc;
609dfdcada3SDoug Rabson 	char dummy;
610dfdcada3SDoug Rabson 
611c675522fSDoug Rabson 	if (nlm_do_unlock(argp, &res4, rqstp, &rpc))
612d9ab5c4aSDoug Rabson 		return (FALSE);
613c675522fSDoug Rabson 	if (rpc) {
614c675522fSDoug Rabson 		nlm4_unlock_res_4(&res4, &dummy, rpc, NULL, nlm_zero_tv);
615c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
616c675522fSDoug Rabson 	}
617dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm4_res, &res4);
618dfdcada3SDoug Rabson 
619dfdcada3SDoug Rabson 	return (FALSE);
620dfdcada3SDoug Rabson }
621dfdcada3SDoug Rabson 
622dfdcada3SDoug Rabson bool_t
nlm4_granted_msg_4_svc(nlm4_testargs * argp,void * result,struct svc_req * rqstp)623dfdcada3SDoug Rabson nlm4_granted_msg_4_svc(nlm4_testargs *argp, void *result, struct svc_req *rqstp)
624dfdcada3SDoug Rabson {
625dfdcada3SDoug Rabson 	nlm4_res res4;
626c675522fSDoug Rabson 	CLIENT *rpc;
627dfdcada3SDoug Rabson 	char dummy;
628dfdcada3SDoug Rabson 
629c675522fSDoug Rabson 	if (nlm_do_granted(argp, &res4, rqstp, &rpc))
630c675522fSDoug Rabson 		return (FALSE);
631c675522fSDoug Rabson 	if (rpc) {
632c675522fSDoug Rabson 		nlm4_granted_res_4(&res4, &dummy, rpc, NULL, nlm_zero_tv);
633c675522fSDoug Rabson 		CLNT_RELEASE(rpc);
634c675522fSDoug Rabson 	}
635dfdcada3SDoug Rabson 	xdr_free((xdrproc_t) xdr_nlm4_res, &res4);
636dfdcada3SDoug Rabson 
637dfdcada3SDoug Rabson 	return (FALSE);
638dfdcada3SDoug Rabson }
639dfdcada3SDoug Rabson 
640dfdcada3SDoug Rabson bool_t
nlm4_test_res_4_svc(nlm4_testres * argp,void * result,struct svc_req * rqstp)641dfdcada3SDoug Rabson nlm4_test_res_4_svc(nlm4_testres *argp, void *result, struct svc_req *rqstp)
642dfdcada3SDoug Rabson {
643dfdcada3SDoug Rabson 
644dfdcada3SDoug Rabson 	return (FALSE);
645dfdcada3SDoug Rabson }
646dfdcada3SDoug Rabson 
647dfdcada3SDoug Rabson bool_t
nlm4_lock_res_4_svc(nlm4_res * argp,void * result,struct svc_req * rqstp)648dfdcada3SDoug Rabson nlm4_lock_res_4_svc(nlm4_res *argp, void *result, struct svc_req *rqstp)
649dfdcada3SDoug Rabson {
650dfdcada3SDoug Rabson 
651dfdcada3SDoug Rabson 	return (FALSE);
652dfdcada3SDoug Rabson }
653dfdcada3SDoug Rabson 
654dfdcada3SDoug Rabson bool_t
nlm4_cancel_res_4_svc(nlm4_res * argp,void * result,struct svc_req * rqstp)655dfdcada3SDoug Rabson nlm4_cancel_res_4_svc(nlm4_res *argp, void *result, struct svc_req *rqstp)
656dfdcada3SDoug Rabson {
657dfdcada3SDoug Rabson 
658dfdcada3SDoug Rabson 	return (FALSE);
659dfdcada3SDoug Rabson }
660dfdcada3SDoug Rabson 
661dfdcada3SDoug Rabson bool_t
nlm4_unlock_res_4_svc(nlm4_res * argp,void * result,struct svc_req * rqstp)662dfdcada3SDoug Rabson nlm4_unlock_res_4_svc(nlm4_res *argp, void *result, struct svc_req *rqstp)
663dfdcada3SDoug Rabson {
664dfdcada3SDoug Rabson 
665dfdcada3SDoug Rabson 	return (FALSE);
666dfdcada3SDoug Rabson }
667dfdcada3SDoug Rabson 
668dfdcada3SDoug Rabson bool_t
nlm4_granted_res_4_svc(nlm4_res * argp,void * result,struct svc_req * rqstp)669dfdcada3SDoug Rabson nlm4_granted_res_4_svc(nlm4_res *argp, void *result, struct svc_req *rqstp)
670dfdcada3SDoug Rabson {
671dfdcada3SDoug Rabson 
672fbaa591fSZachary Loafman 	nlm_do_granted_res(argp, rqstp);
673dfdcada3SDoug Rabson 	return (FALSE);
674dfdcada3SDoug Rabson }
675dfdcada3SDoug Rabson 
676dfdcada3SDoug Rabson bool_t
nlm4_share_4_svc(nlm4_shareargs * argp,nlm4_shareres * result,struct svc_req * rqstp)677dfdcada3SDoug Rabson nlm4_share_4_svc(nlm4_shareargs *argp, nlm4_shareres *result, struct svc_req *rqstp)
678dfdcada3SDoug Rabson {
679dfdcada3SDoug Rabson 
680dfdcada3SDoug Rabson 	memset(result, 0, sizeof(*result));
681dfdcada3SDoug Rabson 	result->stat = nlm4_denied;
682dfdcada3SDoug Rabson 	return (TRUE);
683dfdcada3SDoug Rabson }
684dfdcada3SDoug Rabson 
685dfdcada3SDoug Rabson bool_t
nlm4_unshare_4_svc(nlm4_shareargs * argp,nlm4_shareres * result,struct svc_req * rqstp)686dfdcada3SDoug Rabson nlm4_unshare_4_svc(nlm4_shareargs *argp, nlm4_shareres *result, struct svc_req *rqstp)
687dfdcada3SDoug Rabson {
688dfdcada3SDoug Rabson 
689dfdcada3SDoug Rabson 	memset(result, 0, sizeof(*result));
690dfdcada3SDoug Rabson 	result->stat = nlm4_denied;
691dfdcada3SDoug Rabson 	return (TRUE);
692dfdcada3SDoug Rabson }
693dfdcada3SDoug Rabson 
694dfdcada3SDoug Rabson bool_t
nlm4_nm_lock_4_svc(nlm4_lockargs * argp,nlm4_res * result,struct svc_req * rqstp)695dfdcada3SDoug Rabson nlm4_nm_lock_4_svc(nlm4_lockargs *argp, nlm4_res *result, struct svc_req *rqstp)
696dfdcada3SDoug Rabson {
697dfdcada3SDoug Rabson 
698c675522fSDoug Rabson 	nlm_do_lock(argp, result, rqstp, FALSE, NULL);
699dfdcada3SDoug Rabson 	return (TRUE);
700dfdcada3SDoug Rabson }
701dfdcada3SDoug Rabson 
702dfdcada3SDoug Rabson bool_t
nlm4_free_all_4_svc(nlm4_notify * argp,void * result,struct svc_req * rqstp)703dfdcada3SDoug Rabson nlm4_free_all_4_svc(nlm4_notify *argp, void *result, struct svc_req *rqstp)
704dfdcada3SDoug Rabson {
705dfdcada3SDoug Rabson 
706dfdcada3SDoug Rabson 	nlm_do_free_all(argp);
707dfdcada3SDoug Rabson 	return (TRUE);
708dfdcada3SDoug Rabson }
709dfdcada3SDoug Rabson 
710dfdcada3SDoug Rabson int
nlm_prog_4_freeresult(SVCXPRT * transp,xdrproc_t xdr_result,caddr_t result)711dfdcada3SDoug Rabson nlm_prog_4_freeresult(SVCXPRT *transp, xdrproc_t xdr_result, caddr_t result)
712dfdcada3SDoug Rabson {
713dfdcada3SDoug Rabson 
714dfdcada3SDoug Rabson 	(void) xdr_free(xdr_result, result);
715dfdcada3SDoug Rabson 	return (TRUE);
716dfdcada3SDoug Rabson }
717