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