Loading fs/nfsd/nfs2acl.c +12 −17 Original line number Diff line number Diff line Loading @@ -201,28 +201,23 @@ static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p) static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p) { struct xdr_stream *xdr = &rqstp->rq_arg_stream; struct nfsd3_setaclargs *argp = rqstp->rq_argp; struct kvec *head = rqstp->rq_arg.head; unsigned int base; int n; p = nfs2svc_decode_fh(p, &argp->fh); if (!p) if (!svcxdr_decode_fhandle(xdr, &argp->fh)) return 0; if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) return 0; if (argp->mask & ~NFS_ACL_MASK) return 0; argp->mask = ntohl(*p++); if (argp->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_ACL) ? &argp->acl_access : NULL)) return 0; if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_DFACL) ? &argp->acl_default : NULL)) return 0; base = (char *)p - (char *)head->iov_base; n = nfsacl_decode(&rqstp->rq_arg, base, NULL, (argp->mask & NFS_ACL) ? &argp->acl_access : NULL); if (n > 0) n = nfsacl_decode(&rqstp->rq_arg, base + n, NULL, (argp->mask & NFS_DFACL) ? &argp->acl_default : NULL); return (n > 0); return 1; } static int nfsaclsvc_decode_fhandleargs(struct svc_rqst *rqstp, __be32 *p) Loading fs/nfsd/xdr3.h +1 −1 Original line number Diff line number Diff line Loading @@ -108,7 +108,7 @@ struct nfsd3_getaclargs { struct posix_acl; struct nfsd3_setaclargs { struct svc_fh fh; int mask; __u32 mask; struct posix_acl *acl_access; struct posix_acl *acl_default; }; Loading Loading
fs/nfsd/nfs2acl.c +12 −17 Original line number Diff line number Diff line Loading @@ -201,28 +201,23 @@ static int nfsaclsvc_decode_getaclargs(struct svc_rqst *rqstp, __be32 *p) static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p) { struct xdr_stream *xdr = &rqstp->rq_arg_stream; struct nfsd3_setaclargs *argp = rqstp->rq_argp; struct kvec *head = rqstp->rq_arg.head; unsigned int base; int n; p = nfs2svc_decode_fh(p, &argp->fh); if (!p) if (!svcxdr_decode_fhandle(xdr, &argp->fh)) return 0; if (xdr_stream_decode_u32(xdr, &argp->mask) < 0) return 0; if (argp->mask & ~NFS_ACL_MASK) return 0; argp->mask = ntohl(*p++); if (argp->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_ACL) ? &argp->acl_access : NULL)) return 0; if (!nfs_stream_decode_acl(xdr, NULL, (argp->mask & NFS_DFACL) ? &argp->acl_default : NULL)) return 0; base = (char *)p - (char *)head->iov_base; n = nfsacl_decode(&rqstp->rq_arg, base, NULL, (argp->mask & NFS_ACL) ? &argp->acl_access : NULL); if (n > 0) n = nfsacl_decode(&rqstp->rq_arg, base + n, NULL, (argp->mask & NFS_DFACL) ? &argp->acl_default : NULL); return (n > 0); return 1; } static int nfsaclsvc_decode_fhandleargs(struct svc_rqst *rqstp, __be32 *p) Loading
fs/nfsd/xdr3.h +1 −1 Original line number Diff line number Diff line Loading @@ -108,7 +108,7 @@ struct nfsd3_getaclargs { struct posix_acl; struct nfsd3_setaclargs { struct svc_fh fh; int mask; __u32 mask; struct posix_acl *acl_access; struct posix_acl *acl_default; }; Loading