linux/fs/netfs
David Howells 41d8e7673a netfs: Implement a write-through caching option
Provide a flag whereby a filesystem may request that cifs_perform_write()
perform write-through caching.  This involves putting pages directly into
writeback rather than dirty and attaching them to a write operation as we
go.

Further, the writes being made are limited to the byte range being written
rather than whole folios being written.  This can be used by cifs, for
example, to deal with strict byte-range locking.

This can't be used with content encryption as that may require expansion of
the write RPC beyond the write being made.

This doesn't affect writes via mmap - those are written back in the normal
way; similarly failed writethrough writes are marked dirty and left to
writeback to retry.  Another option would be to simply invalidate them, but
the contents can be simultaneously accessed by read() and through mmap.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: linux-cachefs@redhat.com
cc: linux-fsdevel@vger.kernel.org
cc: linux-mm@kvack.org
2023-12-28 09:45:27 +00:00
..
buffered_read.c netfs: Provide netfs_file_read_iter() 2023-12-28 09:45:25 +00:00
buffered_write.c netfs: Implement a write-through caching option 2023-12-28 09:45:27 +00:00
direct_read.c netfs: Implement unbuffered/DIO read support 2023-12-28 09:45:23 +00:00
direct_write.c netfs: Implement unbuffered/DIO write support 2023-12-28 09:45:24 +00:00
fscache_cache.c netfs, fscache: Move fs/fscache/* into fs/netfs/ 2023-12-24 11:36:00 +00:00
fscache_cookie.c netfs, fscache: Move fs/fscache/* into fs/netfs/ 2023-12-24 11:36:00 +00:00
fscache_internal.h netfs, fscache: Combine fscache with netfs 2023-12-24 15:08:46 +00:00
fscache_io.c netfs, cachefiles: Pass upper bound length to allow expansion 2023-12-28 09:45:25 +00:00
fscache_main.c netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink 2023-12-24 15:08:48 +00:00
fscache_proc.c netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink 2023-12-24 15:08:48 +00:00
fscache_stats.c netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink 2023-12-24 15:08:48 +00:00
fscache_volume.c netfs, fscache: Move fs/fscache/* into fs/netfs/ 2023-12-24 11:36:00 +00:00
internal.h netfs: Implement a write-through caching option 2023-12-28 09:45:27 +00:00
io.c netfs, cachefiles: Pass upper bound length to allow expansion 2023-12-28 09:45:25 +00:00
iterator.c netfs: Add func to calculate pagecount/size-limited span of an iterator 2023-12-28 09:45:18 +00:00
Kconfig netfs, fscache: Combine fscache with netfs 2023-12-24 15:08:46 +00:00
locking.c netfs: Implement unbuffered/DIO vs buffered I/O locking 2023-12-24 15:08:52 +00:00
main.c netfs: Implement a write-through caching option 2023-12-28 09:45:27 +00:00
Makefile netfs: Implement unbuffered/DIO write support 2023-12-28 09:45:24 +00:00
misc.c netfs: Prep to use folio->private for write grouping and streaming write 2023-12-28 09:45:21 +00:00
objects.c netfs: Implement a write-through caching option 2023-12-28 09:45:27 +00:00
output.c netfs: Implement a write-through caching option 2023-12-28 09:45:27 +00:00
stats.c netfs: Implement unbuffered/DIO read support 2023-12-28 09:45:23 +00:00