9 #include <linux/nfsacl.h>
15 #define NFSDDBG_FACILITY NFSDDBG_PROC
16 #define RETURN_STATUS(st) { resp->status = (st); return (st); }
39 fh = fh_copy(&resp->
fh, &argp->
fh);
51 int err = PTR_ERR(acl);
74 int err = PTR_ERR(acl);
107 fh = fh_copy(&resp->
fh, &argp->
fh);
111 nfserr =
nfserrno( nfsd_set_posix_acl(
115 nfserr =
nfserrno( nfsd_set_posix_acl(
134 fh_copy(&resp->
fh, &argp->
fh);
146 dprintk(
"nfsd: ACCESS(2acl) %s 0x%x\n",
150 fh_copy(&resp->
fh, &argp->
fh);
152 nfserr = nfsd_access(rqstp, &resp->
fh, &resp->
access,
NULL);
159 static int nfsaclsvc_decode_getaclargs(
struct svc_rqst *rqstp,
__be32 *
p,
166 return xdr_argsize_check(rqstp, p);
170 static int nfsaclsvc_decode_setaclargs(
struct svc_rqst *rqstp,
__be32 *p,
181 !xdr_argsize_check(rqstp, p))
184 base = (
char *)p - (
char *)head->
iov_base;
195 static int nfsaclsvc_decode_fhandleargs(
struct svc_rqst *rqstp,
__be32 *p,
200 return xdr_argsize_check(rqstp, p);
203 static int nfsaclsvc_decode_accessargs(
struct svc_rqst *rqstp,
__be32 *p,
210 return xdr_argsize_check(rqstp, p);
223 return xdr_ressize_check(rqstp, p);
227 static int nfsaclsvc_encode_getaclres(
struct svc_rqst *rqstp,
__be32 *p,
248 if (!xdr_ressize_check(rqstp, p))
250 base = (
char *)p - (
char *)head->
iov_base;
252 rqstp->
rq_res.page_len = w = nfsacl_size(
274 static int nfsaclsvc_encode_attrstatres(
struct svc_rqst *rqstp,
__be32 *p,
278 return xdr_ressize_check(rqstp, p);
282 static int nfsaclsvc_encode_accessres(
struct svc_rqst *rqstp,
__be32 *p,
287 return xdr_ressize_check(rqstp, p);
293 static int nfsaclsvc_release_getacl(
struct svc_rqst *rqstp,
__be32 *p,
302 static int nfsaclsvc_release_attrstat(
struct svc_rqst *rqstp,
__be32 *p,
309 static int nfsaclsvc_release_access(
struct svc_rqst *rqstp,
__be32 *p,
316 #define nfsaclsvc_decode_voidargs NULL
317 #define nfsaclsvc_release_void NULL
318 #define nfsd3_fhandleargs nfsd_fhandle
319 #define nfsd3_attrstatres nfsd_attrstat
320 #define nfsd3_voidres nfsd3_voidargs
323 #define PROC(name, argt, rest, relt, cache, respsize) \
324 { (svc_procfunc) nfsacld_proc_##name, \
325 (kxdrproc_t) nfsaclsvc_decode_##argt##args, \
326 (kxdrproc_t) nfsaclsvc_encode_##rest##res, \
327 (kxdrproc_t) nfsaclsvc_release_##relt, \
328 sizeof(struct nfsd3_##argt##args), \
329 sizeof(struct nfsd3_##rest##res), \
338 #define ACL (1+NFS_ACL_MAX_ENTRIES*3)
351 .vs_proc = nfsd_acl_procedures2,