Hey- > On Dec 9, 2020, at 9:48 AM, trondmy@xxxxxxxxxx wrote: > > From: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> > > Ensure that we encode the data payload + padding, and that we truncate > the preallocated buffer to the actual read size. Did you intend to merge 15/16 and 16/16 through your tree? Can the patch descriptions say a little more about why these changes are necessary? If they fix a misbehavior, describe the problem. > Signed-off-by: Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> > --- > fs/nfsd/nfs4xdr.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c > index 833a2c64dfe8..26f6e277101d 100644 > --- a/fs/nfsd/nfs4xdr.c > +++ b/fs/nfsd/nfs4xdr.c > @@ -4632,6 +4632,7 @@ nfsd4_encode_read_plus_data(struct nfsd4_compoundres *resp, > resp->rqstp->rq_vec, read->rd_vlen, maxcount, eof); > if (nfserr) > return nfserr; > + xdr_truncate_encode(xdr, starting_len + 16 + xdr_align_size(*maxcount)); > > tmp = htonl(NFS4_CONTENT_DATA); > write_bytes_to_xdr_buf(xdr->buf, starting_len, &tmp, 4); > @@ -4639,6 +4640,10 @@ nfsd4_encode_read_plus_data(struct nfsd4_compoundres *resp, > write_bytes_to_xdr_buf(xdr->buf, starting_len + 4, &tmp64, 8); > tmp = htonl(*maxcount); > write_bytes_to_xdr_buf(xdr->buf, starting_len + 12, &tmp, 4); > + > + tmp = xdr_zero; > + write_bytes_to_xdr_buf(xdr->buf, starting_len + 16 + *maxcount, &tmp, > + xdr_pad_size(*maxcount)); > return nfs_ok; > } > > -- > 2.29.2 > -- Chuck Lever chucklever@xxxxxxxxx