OSDN Git Service

NFSD: Hoist rq_vec preparation into nfsd_read() [step two]
authorChuck Lever <chuck.lever@oracle.com>
Thu, 18 May 2023 17:46:03 +0000 (13:46 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 11 Jun 2023 20:37:46 +0000 (16:37 -0400)
commit703d7521555504b3a316b105b4806d641b7ebc76
tree215d066add0d132fcfdbab631769ed4e617e5ad6
parent507df40ebf31655203dd05e6e31db5849a83347a
NFSD: Hoist rq_vec preparation into nfsd_read() [step two]

Now that the preparation of an rq_vec has been removed from the
generic read path, nfsd_splice_read() no longer needs to reset
rq_next_page.

nfsd4_encode_read() calls nfsd_splice_read() directly. As far as I
can ascertain, resetting rq_next_page for NFSv4 splice reads is
unnecessary because rq_next_page is already set correctly.

Moreover, resetting it might even be incorrect if previous
operations in the COMPOUND have already consumed at least a page of
the send buffer. I would expect that the result would be encoding
the READ payload over previously-encoded results.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4xdr.c
fs/nfsd/vfs.c
include/linux/sunrpc/xdr.h
net/sunrpc/xdr.c