NFSD: Set the attributes used to store the verifier for EXCLUSIVE4_1
According to rfc5661 18.16.4, "If EXCLUSIVE4_1 was used, the client determines the attributes used for the verifier by comparing attrset with cva_attrs.attrmask;" So, EXCLUSIVE4_1 also needs those bitmask used to store the verifier. 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
7d580722c9
commit
ead8fb8c24
@@ -276,13 +276,13 @@ do_open_lookup(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, stru
|
||||
nfsd4_security_inode_setsecctx(*resfh, &open->op_label, open->op_bmval);
|
||||
|
||||
/*
|
||||
* Following rfc 3530 14.2.16, use the returned bitmask
|
||||
* to indicate which attributes we used to store the
|
||||
* verifier:
|
||||
* Following rfc 3530 14.2.16, and rfc 5661 18.16.4
|
||||
* use the returned bitmask to indicate which attributes
|
||||
* we used to store the verifier:
|
||||
*/
|
||||
if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0)
|
||||
open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS |
|
||||
FATTR4_WORD1_TIME_MODIFY);
|
||||
if (nfsd_create_is_exclusive(open->op_createmode) && status == 0)
|
||||
open->op_bmval[1] |= (FATTR4_WORD1_TIME_ACCESS |
|
||||
FATTR4_WORD1_TIME_MODIFY);
|
||||
} else
|
||||
/*
|
||||
* Note this may exit with the parent still locked.
|
||||
|
Reference in New Issue
Block a user