nfs3acl.c (8be98d2f2a0a262f8bf8a0bc1fdf522b3c7aab17) | nfs3acl.c (16c663642c7ec03cd4cee5fec520bb69e97babe4) |
---|---|
1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Process version 3 NFSACL requests. 4 * 5 * Copyright (C) 2002-2003 Andreas Gruenbacher <agruen@suse.de> 6 */ 7 8#include "nfsd.h" --- 113 unchanged lines hidden (view full) --- 122 posix_acl_release(argp->acl_default); 123 return rpc_success; 124} 125 126/* 127 * XDR decode functions 128 */ 129 | 1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Process version 3 NFSACL requests. 4 * 5 * Copyright (C) 2002-2003 Andreas Gruenbacher <agruen@suse.de> 6 */ 7 8#include "nfsd.h" --- 113 unchanged lines hidden (view full) --- 122 posix_acl_release(argp->acl_default); 123 return rpc_success; 124} 125 126/* 127 * XDR decode functions 128 */ 129 |
130static int nfs3svc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p) | 130static int 131nfs3svc_decode_getaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr) |
131{ | 132{ |
132 struct xdr_stream *xdr = &rqstp->rq_arg_stream; | |
133 struct nfsd3_getaclargs *args = rqstp->rq_argp; 134 135 if (!svcxdr_decode_nfs_fh3(xdr, &args->fh)) 136 return 0; 137 if (xdr_stream_decode_u32(xdr, &args->mask) < 0) 138 return 0; 139 140 return 1; 141} 142 | 133 struct nfsd3_getaclargs *args = rqstp->rq_argp; 134 135 if (!svcxdr_decode_nfs_fh3(xdr, &args->fh)) 136 return 0; 137 if (xdr_stream_decode_u32(xdr, &args->mask) < 0) 138 return 0; 139 140 return 1; 141} 142 |
143static int nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p) | 143static int 144nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, struct xdr_stream *xdr) |
144{ | 145{ |
145 struct xdr_stream *xdr = &rqstp->rq_arg_stream; | |
146 struct nfsd3_setaclargs *argp = rqstp->rq_argp; 147 148 if (!svcxdr_decode_nfs_fh3(xdr, &argp->fh)) 149 return 0; 150 if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) 151 return 0; 152 if (argp->mask & ~NFS_ACL_MASK) 153 return 0; --- 13 unchanged lines hidden (view full) --- 167 168/* GETACL */ 169static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p) 170{ 171 struct xdr_stream *xdr = &rqstp->rq_res_stream; 172 struct nfsd3_getaclres *resp = rqstp->rq_resp; 173 struct dentry *dentry = resp->fh.fh_dentry; 174 struct kvec *head = rqstp->rq_res.head; | 146 struct nfsd3_setaclargs *argp = rqstp->rq_argp; 147 148 if (!svcxdr_decode_nfs_fh3(xdr, &argp->fh)) 149 return 0; 150 if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) 151 return 0; 152 if (argp->mask & ~NFS_ACL_MASK) 153 return 0; --- 13 unchanged lines hidden (view full) --- 167 168/* GETACL */ 169static int nfs3svc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p) 170{ 171 struct xdr_stream *xdr = &rqstp->rq_res_stream; 172 struct nfsd3_getaclres *resp = rqstp->rq_resp; 173 struct dentry *dentry = resp->fh.fh_dentry; 174 struct kvec *head = rqstp->rq_res.head; |
175 struct inode *inode = d_inode(dentry); | 175 struct inode *inode; |
176 unsigned int base; 177 int n; 178 int w; 179 180 if (!svcxdr_encode_nfsstat3(xdr, resp->status)) 181 return 0; 182 switch (resp->status) { 183 case nfs_ok: | 176 unsigned int base; 177 int n; 178 int w; 179 180 if (!svcxdr_encode_nfsstat3(xdr, resp->status)) 181 return 0; 182 switch (resp->status) { 183 case nfs_ok: |
184 inode = d_inode(dentry); |
|
184 if (!svcxdr_encode_post_op_attr(rqstp, xdr, &resp->fh)) 185 return 0; 186 if (xdr_stream_encode_u32(xdr, resp->mask) < 0) 187 return 0; 188 189 base = (char *)xdr->p - (char *)head->iov_base; 190 191 rqstp->rq_res.page_len = w = nfsacl_size( --- 101 unchanged lines hidden --- | 185 if (!svcxdr_encode_post_op_attr(rqstp, xdr, &resp->fh)) 186 return 0; 187 if (xdr_stream_encode_u32(xdr, resp->mask) < 0) 188 return 0; 189 190 base = (char *)xdr->p - (char *)head->iov_base; 191 192 rqstp->rq_res.page_len = w = nfsacl_size( --- 101 unchanged lines hidden --- |