Messages in this thread | | | Subject | [PATCH 00/14] cifs: Iterators, netfslib and folios | From | David Howells <> | Date | Thu, 07 Apr 2022 00:02:30 +0100 |
| |
Here's a set of patches to make the following changes to the cifs filesystem driver:
(1) Convert cifs to use I/O iterators to pass data/buffers from the the VM interface layer down to the socket rather than passing page lists about.
(2) Convert cifs to use netfslib for buffered and direct read operations.
(3) A partial conversion to folios.
This branch is built on top of my netfs-lib branch[1].
The patches can be found here also:
https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=cifs-experimental
David
Link: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=netfs-lib [1] --- David Howells (14): cifs: Add some helper functions cifs: Add a function to read into an iter from a socket cifs: Check the IOCB_DIRECT flag, not O_DIRECT cifs: Change the I/O paths to use an iterator rather than a page list cifs: Remove unused code cifs: Use netfslib to handle reads cifs: Share server EOF pos with netfslib netfs: Allow the netfs to make the io (sub)request alloc larger cifs: Put credits into cifs_io_subrequest, not on the stack cifs: Hold the open file on netfs_io_request, not netfs_io_subrequest cifs: Clamp length according to credits and rsize cifs: Expose netfs subrequest debug ID and index in read tracepoints cifs: Split the smb3_add_credits tracepoint mm, netfs, fscache: Stop read optimisation when folio removed from pagecache
fs/afs/file.c | 1 + fs/afs/inode.c | 1 + fs/afs/internal.h | 2 + fs/cifs/Kconfig | 1 + fs/cifs/cifsencrypt.c | 40 +- fs/cifs/cifsfs.c | 11 +- fs/cifs/cifsfs.h | 6 +- fs/cifs/cifsglob.h | 53 +- fs/cifs/cifsproto.h | 13 +- fs/cifs/cifssmb.c | 252 +++-- fs/cifs/connect.c | 18 +- fs/cifs/file.c | 2096 ++++++++++----------------------------- fs/cifs/fscache.c | 120 +-- fs/cifs/fscache.h | 70 -- fs/cifs/inode.c | 22 +- fs/cifs/misc.c | 109 -- fs/cifs/smb2ops.c | 387 ++++---- fs/cifs/smb2pdu.c | 85 +- fs/cifs/smb2proto.h | 2 +- fs/cifs/trace.h | 151 ++- fs/cifs/transport.c | 41 +- fs/netfs/internal.h | 1 + fs/netfs/io.c | 7 +- fs/netfs/misc.c | 13 +- fs/netfs/stats.c | 9 +- include/linux/fs.h | 2 + include/linux/netfs.h | 1 + include/linux/pagemap.h | 1 + mm/filemap.c | 15 + 29 files changed, 1203 insertions(+), 2327 deletions(-)
| |