[PATCH 0/6] cifs: Use iov_iters down to the network transport

From: David Howells
Date: Mon May 09 2022 - 12:36:16 EST



Hi Steve,

Here's a subset of my cifs-experimental branch. It alters the cifs driver
to pass iov_iters down to the lowest layers where they can be passed to the
network transport.

I've fixed a couple of bugs in it also, including the RCU warning you were
seeing. I'm seeing some slow calls, however, but I'm not sure how to debug
them. RDMA also needs looking at, but I'm not sure how the RDMA API works.

I've pushed the patches here also:

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

David
---
David Howells (6):
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


fs/cifs/cifsencrypt.c | 40 +-
fs/cifs/cifsfs.h | 3 +
fs/cifs/cifsglob.h | 28 +-
fs/cifs/cifsproto.h | 11 +-
fs/cifs/cifssmb.c | 225 +++++---
fs/cifs/connect.c | 16 +
fs/cifs/file.c | 1263 ++++++++++++++---------------------------
fs/cifs/misc.c | 109 ----
fs/cifs/smb2ops.c | 366 ++++++------
fs/cifs/smb2pdu.c | 12 +-
fs/cifs/transport.c | 37 +-
include/linux/uio.h | 8 +
lib/iov_iter.c | 133 +++++
13 files changed, 935 insertions(+), 1316 deletions(-)