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 ---