[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(-)