nfs4proc.c (54bbb7d206db78a3dfd87bc8d9735cbe3ac3f938) | nfs4proc.c (32ddd944a056c786f6acdd95ed29e994adc613a2) |
---|---|
1/* 2 * Server-side procedures for NFSv4. 3 * 4 * Copyright (c) 2002 The Regents of the University of Michigan. 5 * All rights reserved. 6 * 7 * Kendrick Smith <kmsmith@umich.edu> 8 * Andy Adamson <andros@umich.edu> --- 81 unchanged lines hidden (view full) --- 90 NFSD_SUPPATTR_EXCLCREAT_WORD2 91}; 92 93static __be32 94check_attr_support(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, 95 u32 *bmval, u32 *writable) 96{ 97 struct dentry *dentry = cstate->current_fh.fh_dentry; | 1/* 2 * Server-side procedures for NFSv4. 3 * 4 * Copyright (c) 2002 The Regents of the University of Michigan. 5 * All rights reserved. 6 * 7 * Kendrick Smith <kmsmith@umich.edu> 8 * Andy Adamson <andros@umich.edu> --- 81 unchanged lines hidden (view full) --- 90 NFSD_SUPPATTR_EXCLCREAT_WORD2 91}; 92 93static __be32 94check_attr_support(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, 95 u32 *bmval, u32 *writable) 96{ 97 struct dentry *dentry = cstate->current_fh.fh_dentry; |
98 struct svc_export *exp = cstate->current_fh.fh_export; |
|
98 99 if (!nfsd_attrs_supported(cstate->minorversion, bmval)) 100 return nfserr_attrnotsupp; 101 if ((bmval[0] & FATTR4_WORD0_ACL) && !IS_POSIXACL(d_inode(dentry))) 102 return nfserr_attrnotsupp; | 99 100 if (!nfsd_attrs_supported(cstate->minorversion, bmval)) 101 return nfserr_attrnotsupp; 102 if ((bmval[0] & FATTR4_WORD0_ACL) && !IS_POSIXACL(d_inode(dentry))) 103 return nfserr_attrnotsupp; |
104 if ((bmval[2] & FATTR4_WORD2_SECURITY_LABEL) && 105 !(exp->ex_flags & NFSEXP_SECURITY_LABEL)) 106 return nfserr_attrnotsupp; |
|
103 if (writable && !bmval_is_subset(bmval, writable)) 104 return nfserr_inval; 105 if (writable && (bmval[2] & FATTR4_WORD2_MODE_UMASK) && 106 (bmval[1] & FATTR4_WORD1_MODE)) 107 return nfserr_inval; 108 return nfs_ok; 109} 110 --- 2381 unchanged lines hidden --- | 107 if (writable && !bmval_is_subset(bmval, writable)) 108 return nfserr_inval; 109 if (writable && (bmval[2] & FATTR4_WORD2_MODE_UMASK) && 110 (bmval[1] & FATTR4_WORD1_MODE)) 111 return nfserr_inval; 112 return nfs_ok; 113} 114 --- 2381 unchanged lines hidden --- |