OSDN Git Service

NFSD: Refactor the generic write vector fill helper
authorChuck Lever <chuck.lever@oracle.com>
Fri, 27 Jul 2018 15:19:05 +0000 (11:19 -0400)
committerJ. Bruce Fields <bfields@redhat.com>
Thu, 9 Aug 2018 20:11:21 +0000 (16:11 -0400)
commit3fd9557aec919e2db99365ad5a2c00d04ae8893c
tree05080da3b387284283094159e2d560ad09270646
parent07d0ff3b0cd23a4ba7078fb5cc3aeb25e38b3557
NFSD: Refactor the generic write vector fill helper

fill_in_write_vector() is nearly the same logic as
svc_fill_write_vector(), but there are a few differences so that
the former can handle multiple WRITE payloads in a single COMPOUND.

svc_fill_write_vector() can be adjusted so that it can be used in
the NFSv4 WRITE code path too. Instead of assuming the pages are
coming from rq_args.pages, have the caller pass in the page list.

The immediate benefit is a reduction of code duplication. It also
prevents the NFSv4 WRITE decoder from passing an empty vector
element when the transport has provided the payload in the xdr_buf's
page array.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfs3proc.c
fs/nfsd/nfs4proc.c
fs/nfsd/nfsproc.c
include/linux/sunrpc/svc.h
net/sunrpc/svc.c