[PATCH 0/7] smb3: Add iter helpers and use iov_iters down to the network transport

From: David Howells
Date: Tue Aug 23 2022 - 13:03:30 EST



Hi Steve, Al,

Here's an updated version of a subset of my branch to make the cifs/smb3
driver pass iov_iters down to the lowest layers where they can be passed to
the network transport.

Al: Could you look at the first two patches, that add extract_iter_to_iter()
to see about decanting iterators of various types (but that might have to be
lost) into iterators that can be held on to (pinning pages in the process),
and iov_iter_scan() which passes each partial page of an iterator to a scanner
function to do something with (such as create an sglist element for).

Possibly I should add an extract_iter_to_sglist() - I'm doing that in a number
of places.

Steve: assuming Al is okay with the iov_iter patches, can you look at taking
this into your tree (or should it go through mine?)?

I've pushed the patches here also:

https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=cifs-for-viro

David
---
David Howells (7):
iov_iter: Add a function to extract an iter's buffers to a bvec iter
iov_iter: Add a general purpose iteration function
cifs: Add some helper functions
cifs: Add a function to read into an iter from a socket
cifs: Change the I/O paths to use an iterator rather than a page list
cifs: Remove unused code
cifs: Add some RDMA send tracepoints


fs/cifs/cifsencrypt.c | 40 +-
fs/cifs/cifsfs.h | 3 +
fs/cifs/cifsglob.h | 28 +-
fs/cifs/cifsproto.h | 11 +-
fs/cifs/cifssmb.c | 13 +-
fs/cifs/connect.c | 16 +
fs/cifs/file.c | 1653 ++++++++++++++++++-----------------------
fs/cifs/fscache.c | 22 +-
fs/cifs/fscache.h | 10 +-
fs/cifs/misc.c | 108 ---
fs/cifs/smb2ops.c | 369 +++++----
fs/cifs/smb2pdu.c | 44 +-
fs/cifs/smbdirect.c | 335 ++++-----
fs/cifs/smbdirect.h | 4 +-
fs/cifs/trace.h | 95 +++
fs/cifs/transport.c | 54 +-
include/linux/uio.h | 8 +
lib/iov_iter.c | 159 +++-
18 files changed, 1391 insertions(+), 1581 deletions(-)