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]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.