mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
nfsd: honour client-provided attributes for NFS4_CREATE_EXCLUSIVE4_1
When a file is created with a v4.1 OPEN which requests
NFS4_CREATE_EXCLUSIVE4_1, the request can include attributes to be set.
However when the mtime/atime are set to hold the verifier, the other
ia_valid flags are cleared, so no attributes requested by the client are
used.
This code was originally written for NFSv3 where NFS3_CREATE_EXCLUSIVE
never includes attributes. When it was updated for v4.1, the fact that an
exclusive create CAN include attributes was not handled properly.
Fixes: ac6721a13e ("nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly")
Cc: stable@vger.kernel.org
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: NeilBrown <neil@brown.name>
Link: https://patch.msgid.link/20260717093001.1972119-2-neilb@ownmail.net
Signed-off-by: Chuck Lever <cel@kernel.org>
This commit is contained in:
parent
a90ee4305c
commit
ddfabbc784
|
|
@ -394,8 +394,8 @@ nfsd4_create_file(struct svc_rqst *rqstp, struct svc_fh *fhp,
|
|||
if ((iap->ia_valid & ATTR_SIZE) && (iap->ia_size == 0))
|
||||
iap->ia_valid &= ~ATTR_SIZE;
|
||||
if (nfsd4_create_is_exclusive(open->op_createmode)) {
|
||||
iap->ia_valid = ATTR_MTIME | ATTR_ATIME |
|
||||
ATTR_MTIME_SET|ATTR_ATIME_SET;
|
||||
iap->ia_valid |= ATTR_MTIME | ATTR_ATIME |
|
||||
ATTR_MTIME_SET|ATTR_ATIME_SET;
|
||||
iap->ia_mtime.tv_sec = v_mtime;
|
||||
iap->ia_atime.tv_sec = v_atime;
|
||||
iap->ia_mtime.tv_nsec = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user