Loading fs/nfsd/nfs2acl.c +4 −6 Original line number Original line Diff line number Diff line Loading @@ -44,13 +44,13 @@ static __be32 nfsacld_proc_getacl(struct svc_rqst * rqstp, inode = d_inode(fh->fh_dentry); inode = d_inode(fh->fh_dentry); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) if (argp->mask & ~NFS_ACL_MASK) RETURN_STATUS(nfserr_inval); RETURN_STATUS(nfserr_inval); resp->mask = argp->mask; resp->mask = argp->mask; nfserr = fh_getattr(fh, &resp->stat); nfserr = fh_getattr(fh, &resp->stat); if (nfserr) if (nfserr) goto fail; RETURN_STATUS(nfserr); if (resp->mask & (NFS_ACL|NFS_ACLCNT)) { if (resp->mask & (NFS_ACL|NFS_ACLCNT)) { acl = get_acl(inode, ACL_TYPE_ACCESS); acl = get_acl(inode, ACL_TYPE_ACCESS); Loading Loading @@ -202,7 +202,7 @@ static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p, if (!p) if (!p) return 0; return 0; argp->mask = ntohl(*p++); argp->mask = ntohl(*p++); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT) || if (argp->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) !xdr_argsize_check(rqstp, p)) return 0; return 0; Loading Loading @@ -293,9 +293,7 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, resp->acl_default, resp->acl_default, resp->mask & NFS_DFACL, resp->mask & NFS_DFACL, NFS_ACL_DEFAULT); NFS_ACL_DEFAULT); if (n <= 0) return (n > 0); return 0; return 1; } } static int nfsaclsvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p, static int nfsaclsvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p, Loading fs/nfsd/nfs3acl.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,7 @@ static __be32 nfsd3_proc_getacl(struct svc_rqst * rqstp, inode = d_inode(fh->fh_dentry); inode = d_inode(fh->fh_dentry); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) if (argp->mask & ~NFS_ACL_MASK) RETURN_STATUS(nfserr_inval); RETURN_STATUS(nfserr_inval); resp->mask = argp->mask; resp->mask = argp->mask; Loading Loading @@ -148,7 +148,7 @@ static int nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p, if (!p) if (!p) return 0; return 0; args->mask = ntohl(*p++); args->mask = ntohl(*p++); if (args->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT) || if (args->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) !xdr_argsize_check(rqstp, p)) return 0; return 0; Loading include/uapi/linux/nfsacl.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,7 @@ #define NFS_ACLCNT 0x0002 #define NFS_ACLCNT 0x0002 #define NFS_DFACL 0x0004 #define NFS_DFACL 0x0004 #define NFS_DFACLCNT 0x0008 #define NFS_DFACLCNT 0x0008 #define NFS_ACL_MASK 0x000f /* Flag for Default ACL entries */ /* Flag for Default ACL entries */ #define NFS_ACL_DEFAULT 0x1000 #define NFS_ACL_DEFAULT 0x1000 Loading Loading
fs/nfsd/nfs2acl.c +4 −6 Original line number Original line Diff line number Diff line Loading @@ -44,13 +44,13 @@ static __be32 nfsacld_proc_getacl(struct svc_rqst * rqstp, inode = d_inode(fh->fh_dentry); inode = d_inode(fh->fh_dentry); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) if (argp->mask & ~NFS_ACL_MASK) RETURN_STATUS(nfserr_inval); RETURN_STATUS(nfserr_inval); resp->mask = argp->mask; resp->mask = argp->mask; nfserr = fh_getattr(fh, &resp->stat); nfserr = fh_getattr(fh, &resp->stat); if (nfserr) if (nfserr) goto fail; RETURN_STATUS(nfserr); if (resp->mask & (NFS_ACL|NFS_ACLCNT)) { if (resp->mask & (NFS_ACL|NFS_ACLCNT)) { acl = get_acl(inode, ACL_TYPE_ACCESS); acl = get_acl(inode, ACL_TYPE_ACCESS); Loading Loading @@ -202,7 +202,7 @@ static int nfsaclsvc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p, if (!p) if (!p) return 0; return 0; argp->mask = ntohl(*p++); argp->mask = ntohl(*p++); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT) || if (argp->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) !xdr_argsize_check(rqstp, p)) return 0; return 0; Loading Loading @@ -293,9 +293,7 @@ static int nfsaclsvc_encode_getaclres(struct svc_rqst *rqstp, __be32 *p, resp->acl_default, resp->acl_default, resp->mask & NFS_DFACL, resp->mask & NFS_DFACL, NFS_ACL_DEFAULT); NFS_ACL_DEFAULT); if (n <= 0) return (n > 0); return 0; return 1; } } static int nfsaclsvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p, static int nfsaclsvc_encode_attrstatres(struct svc_rqst *rqstp, __be32 *p, Loading
fs/nfsd/nfs3acl.c +2 −2 Original line number Original line Diff line number Diff line Loading @@ -41,7 +41,7 @@ static __be32 nfsd3_proc_getacl(struct svc_rqst * rqstp, inode = d_inode(fh->fh_dentry); inode = d_inode(fh->fh_dentry); if (argp->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT)) if (argp->mask & ~NFS_ACL_MASK) RETURN_STATUS(nfserr_inval); RETURN_STATUS(nfserr_inval); resp->mask = argp->mask; resp->mask = argp->mask; Loading Loading @@ -148,7 +148,7 @@ static int nfs3svc_decode_setaclargs(struct svc_rqst *rqstp, __be32 *p, if (!p) if (!p) return 0; return 0; args->mask = ntohl(*p++); args->mask = ntohl(*p++); if (args->mask & ~(NFS_ACL|NFS_ACLCNT|NFS_DFACL|NFS_DFACLCNT) || if (args->mask & ~NFS_ACL_MASK || !xdr_argsize_check(rqstp, p)) !xdr_argsize_check(rqstp, p)) return 0; return 0; Loading
include/uapi/linux/nfsacl.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -22,6 +22,7 @@ #define NFS_ACLCNT 0x0002 #define NFS_ACLCNT 0x0002 #define NFS_DFACL 0x0004 #define NFS_DFACL 0x0004 #define NFS_DFACLCNT 0x0008 #define NFS_DFACLCNT 0x0008 #define NFS_ACL_MASK 0x000f /* Flag for Default ACL entries */ /* Flag for Default ACL entries */ #define NFS_ACL_DEFAULT 0x1000 #define NFS_ACL_DEFAULT 0x1000 Loading