NFS: Fix handling of reply page vector

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@umich.edu>
Fixes: 02ef04e432 ("NFS: Account for XDR pad of buf->pages")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: Olga Kornievskaia <aglo@umich.edu>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
This commit is contained in:
Chuck Lever 2019-04-09 10:44:16 -04:00 committed by Trond Myklebust
parent 7c2bd9a398
commit 29e7ca715f

View File

@ -2589,7 +2589,7 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr,
ARRAY_SIZE(nfs4_acl_bitmap), &hdr); ARRAY_SIZE(nfs4_acl_bitmap), &hdr);
rpc_prepare_reply_pages(req, args->acl_pages, 0, rpc_prepare_reply_pages(req, args->acl_pages, 0,
args->acl_len, replen); args->acl_len, replen + 1);
encode_nops(&hdr); 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, rpc_prepare_reply_pages(req, (struct page **)&args->page, 0,
PAGE_SIZE, replen); PAGE_SIZE, replen + 1);
encode_nops(&hdr); encode_nops(&hdr);
} }