There are significant changes afoot for the NFSD I/O infrastructure, including changes to the use of rq_pages and adding support for folios. With this series, I'm starting to re-shape some of the I/O path code to prepare it for these modifications. In particular, eventually the TCP send path will eventually take a single iterator to cover the record marker, the head buffer, and possibly a page or folio array, and a tail buffer. NFSD's generic read and write infrastructure (ie, fs/nfsd/vfs.c) will need to cope with that, and it will need to handle getting READ payloads in the form of folios rather than pages, in many cases. Consider this series as a set of clean-ups, but also as a conversation starter about how this work should progress. --- Chuck Lever (6): NFSD: Ensure that xdr_write_pages updates rq_next_page NFSD: Use svcxdr_encode_opaque_pages() in nfsd4_encode_splice_read() NFSD: Update rq_next_page between COMPOUND operations NFSD: Hoist rq_vec preparation into nfsd_read() NFSD: Hoist rq_vec preparation into nfsd_read() [step two] NFSD: Remove nfsd_readv() fs/nfsd/nfs3proc.c | 14 +------ fs/nfsd/nfs3xdr.c | 11 ++++-- fs/nfsd/nfs4xdr.c | 61 +++++++++++++++--------------- fs/nfsd/nfsproc.c | 14 +------ fs/nfsd/nfsxdr.c | 11 ++++-- fs/nfsd/vfs.c | 76 +++++++++++++++++++++++++++++++------- fs/nfsd/vfs.h | 9 ++--- include/linux/sunrpc/svc.h | 21 +++++++++++ include/linux/sunrpc/xdr.h | 3 +- net/sunrpc/xdr.c | 26 ++++++------- 10 files changed, 148 insertions(+), 98 deletions(-) -- Chuck Lever