On Wed, 13 Dec 2023 15:23:10 +0000, David Howells wrote: > I have been working on my netfslib helpers to the point that I can run > xfstests on AFS to completion (both with write-back buffering and, with a > small patch, write-through buffering in the pagecache). I have a patch for > 9P, but am currently unable to test it. > > The patches remove a little over 800 lines from AFS, 300 from 9P, albeit with > around 3000 lines added to netfs. Hopefully, I will be able to remove a bunch > of lines from Ceph too. > > [...] Ok, that's on vfs.netfs for now. It's based on vfs.rw as that has splice changes that would cause needless conflicts. It helps to not have such series based on -next. Fwiw, I'd rather have this based on a mainline tag in the future. Linus has stated loads of times that he doesn't mind handling merge conflicts and for me it's a lot easier if I have a stable mainline tag. linux-next is too volatile. Thanks! --- Applied to the vfs.netfs branch of the vfs/vfs.git tree. Patches in the vfs.netfs branch should appear in linux-next soon. Please report any outstanding bugs that were missed during review in a new review to the original patch series allowing us to drop it. It's encouraged to provide Acked-bys and Reviewed-bys even though the patch has now been applied. If possible patch trailers will be updated. Note that commit hashes shown below are subject to change due to rebase, trailer updates or similar. If in doubt, please check the listed branch. tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git branch: vfs.netfs [01/39] netfs, fscache: Move fs/fscache/* into fs/netfs/ https://git.kernel.org/vfs/vfs/c/94029f4c6459 [02/39] netfs, fscache: Combine fscache with netfs https://git.kernel.org/vfs/vfs/c/77eb7aa4805e [03/39] netfs, fscache: Remove ->begin_cache_operation https://git.kernel.org/vfs/vfs/c/a7f70e4b4ebf [04/39] netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink https://git.kernel.org/vfs/vfs/c/131e9eb7bd1f [05/39] netfs: Move pinning-for-writeback from fscache to netfs https://git.kernel.org/vfs/vfs/c/1792e1940f54 [06/39] netfs: Add a procfile to list in-progress requests https://git.kernel.org/vfs/vfs/c/1491057f69dc [07/39] netfs: Allow the netfs to make the io (sub)request alloc larger https://git.kernel.org/vfs/vfs/c/6c3efd20150f [08/39] netfs: Add a ->free_subrequest() op https://git.kernel.org/vfs/vfs/c/e0b44a08ac20 [09/39] afs: Don't use folio->private to record partial modification https://git.kernel.org/vfs/vfs/c/9d2a996de9a2 [10/39] netfs: Provide invalidate_folio and release_folio calls https://git.kernel.org/vfs/vfs/c/6136f4723a2e [11/39] netfs: Implement unbuffered/DIO vs buffered I/O locking https://git.kernel.org/vfs/vfs/c/1243d122feca [12/39] netfs: Add iov_iters to (sub)requests to describe various buffers https://git.kernel.org/vfs/vfs/c/a164fd03f073 [13/39] netfs: Add support for DIO buffering https://git.kernel.org/vfs/vfs/c/669e8c33691d [14/39] netfs: Provide tools to create a buffer in an xarray https://git.kernel.org/vfs/vfs/c/c554dc89292d [15/39] netfs: Add bounce buffering support https://git.kernel.org/vfs/vfs/c/476c24c3e80b [16/39] netfs: Add func to calculate pagecount/size-limited span of an iterator https://git.kernel.org/vfs/vfs/c/25d0f84de71d [17/39] netfs: Limit subrequest by size or number of segments https://git.kernel.org/vfs/vfs/c/53ee4e38619a [18/39] netfs: Export netfs_put_subrequest() and some tracepoints https://git.kernel.org/vfs/vfs/c/ac3fc1846a06 [19/39] netfs: Extend the netfs_io_*request structs to handle writes https://git.kernel.org/vfs/vfs/c/90999722fa0b [20/39] netfs: Add a hook to allow tell the netfs to update its i_size https://git.kernel.org/vfs/vfs/c/27dfd078db66 [21/39] netfs: Make netfs_put_request() handle a NULL pointer https://git.kernel.org/vfs/vfs/c/0ffd2319fb64 [22/39] netfs: Make the refcounting of netfs_begin_read() easier to use https://git.kernel.org/vfs/vfs/c/f7125395caba [23/39] netfs: Prep to use folio->private for write grouping and streaming write https://git.kernel.org/vfs/vfs/c/acadf22234e3 [24/39] netfs: Dispatch write requests to process a writeback slice https://git.kernel.org/vfs/vfs/c/17c2b775e3f4 [25/39] netfs: Provide func to copy data to pagecache for buffered write https://git.kernel.org/vfs/vfs/c/dd6ed9717a0b [26/39] netfs: Make netfs_read_folio() handle streaming-write pages https://git.kernel.org/vfs/vfs/c/c958b464f07f [27/39] netfs: Allocate multipage folios in the writepath https://git.kernel.org/vfs/vfs/c/6076cc863769 [28/39] netfs: Implement support for unbuffered/DIO read https://git.kernel.org/vfs/vfs/c/9409fe70ca46 [29/39] netfs: Implement unbuffered/DIO write support https://git.kernel.org/vfs/vfs/c/7acd7b902241 [30/39] netfs: Implement buffered write API https://git.kernel.org/vfs/vfs/c/7b1321366337 [31/39] netfs: Allow buffered shared-writeable mmap through netfs_page_mkwrite() https://git.kernel.org/vfs/vfs/c/d156da6e235c [32/39] netfs: Provide netfs_file_read_iter() https://git.kernel.org/vfs/vfs/c/899ae1e25a64 [33/39] netfs, cachefiles: Pass upper bound length to allow expansion https://git.kernel.org/vfs/vfs/c/52882c158a30 [34/39] netfs: Provide a writepages implementation https://git.kernel.org/vfs/vfs/c/02bf7b4afdba [35/39] netfs: Provide a launder_folio implementation https://git.kernel.org/vfs/vfs/c/cf4e16d98659 [36/39] netfs: Implement a write-through caching option https://git.kernel.org/vfs/vfs/c/7bf6f13f4a63 [37/39] netfs: Optimise away reads above the point at which there can be no data https://git.kernel.org/vfs/vfs/c/fad15293bd0d [38/39] afs: Use the netfs write helpers https://git.kernel.org/vfs/vfs/c/0095df30ad7b [39/39] 9p: Use netfslib read/write_iter https://git.kernel.org/vfs/vfs/c/361e79613421