Re: [PATCH v1] NFS: Fix handling of reply page vector

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 2019-04-08 at 16:00 -0400, Chuck Lever wrote:
> NFSv4 GETACL and FS_LOCATIONS requests stopped working in v5.1-rc.
> 
> These two need the extra padding to be added directly to the reply
> length.
> 
> Reported-by: Olga Kornievskaia <aglo@xxxxxxxxx>
> Fixes: 02ef04e432ba ("NFS: Account for XDR pad of buf->pages")
> Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
> ---
>  fs/nfs/nfs4xdr.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
> index cfcabc3..6024461 100644
> --- a/fs/nfs/nfs4xdr.c
> +++ b/fs/nfs/nfs4xdr.c
> @@ -2589,7 +2589,7 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst
> *req, struct xdr_stream *xdr,
>  			ARRAY_SIZE(nfs4_acl_bitmap), &hdr);
>  
>  	rpc_prepare_reply_pages(req, args->acl_pages, 0,
> -				args->acl_len, replen);
> +				args->acl_len, replen + 1);
>  	encode_nops(&hdr);
>  }
>  
> @@ -2811,7 +2811,7 @@ static void nfs4_xdr_enc_fs_locations(struct
> rpc_rqst *req,
>  	}
>  
>  	rpc_prepare_reply_pages(req, (struct page **)&args->page, 0,
> -				PAGE_SIZE, replen);
> +				PAGE_SIZE, replen + 1);
>  	encode_nops(&hdr);
>  }
>  

I'm having trouble with the math here. Why are we pre-emptively
subtracting a word from the tail? The header constants are always 4-bit 
aligned because they are calculated as a word count, so I'm not
understanding why we need commit 02ef04e432ba at all.

Can you please explain, Chuck?

-- 
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx






[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux