Re: [PATCH v2 01/14] nfsd: honour client-provided attributes for NFS4_CREATE_EXCLUSIVE4_1
Jeff Layton <[email protected]>
| Newsgroups | gmane.linux.nfs |
|---|---|
| Message-ID | <[email protected]> |
On Mon, 2026-07-06 at 08:19 +1000, NeilBrown wrote: > From: NeilBrown <neil-+NVA1uvv1dVBDLzU/[email protected]> > > 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: ac6721a13e5b ("nfsd41: make sure nfs server process OPEN with EXCLUSIVE4_1 correctly") > Signed-off-by: NeilBrown <neil-+NVA1uvv1dVBDLzU/[email protected]> > --- > fs/nfsd/nfs4proc.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c > index 669896be08b6..f8afc356809e 100644 > --- a/fs/nfsd/nfs4proc.c > +++ b/fs/nfsd/nfs4proc.c > @@ -393,8 +393,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; Nice catch. I wonder what we've been missing (if anything) all this time? Reviewed-by: Jeff Layton <[email protected]>