nfsd: Add macro NFS_ACL_MASK for ACL
Signed-off-by: Kinglong Mee <kinglongmee@gmail.com> Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:

committed by
J. Bruce Fields

parent
e446d66dd7
commit
7b8f458653
@@ -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);
|
||||||
@@ -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;
|
||||||
|
|
||||||
@@ -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,
|
||||||
|
@@ -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;
|
||||||
|
|
||||||
@@ -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;
|
||||||
|
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user