summaryrefslogtreecommitdiff
path: root/fs/netfs/Makefile
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2021-06-30 00:31:48 +0300
committerDavid Howells <dhowells@redhat.com>2023-12-28 12:45:22 +0300
commit0e0f2dfe880fb19e4b15a7ca468623eb0b4ba586 (patch)
tree3b80b9d42d124c68d32c352c6140fdc788bc1d37 /fs/netfs/Makefile
parent9ebff83e648148b9ece97d4e4890dd84ca54d6ce (diff)
downloadlinux-0e0f2dfe880fb19e4b15a7ca468623eb0b4ba586.tar.xz
netfs: Dispatch write requests to process a writeback slice
Dispatch one or more write reqeusts to process a writeback slice, where a slice is tailored more to logical block divisions within the file (such as crypto blocks, an object layout or cache granules) than the protocol RPC maximum capacity. The dispatch doesn't happen until throttling allows, at which point the entire writeback slice is processed and queued. A slice may be written to multiple destinations (one or more servers and the local cache) and the writes to each destination might be split up along different lines. The writeback slice holds the required folios pinned. An iov_iter is provided in netfs_write_request that describes the buffer to be used. This may be part of the pagecache, may have auxiliary padding pages attached or may be a bounce buffer resulting from crypto or compression. Consequently, the filesystem must not twiddle the folio markings directly. The following API is available to the filesystem: (1) The ->create_write_requests() method is called to ask the filesystem to create the requests it needs. This is passed the writeback slice to be processed. (2) The filesystem should then call netfs_create_write_request() to create the requests it needs. (3) Once a request is initialised, netfs_queue_write_request() can be called to dispatch it asynchronously, if not completed immediately. (4) netfs_write_request_completed() should be called to note the completion of a request. (5) netfs_get_write_request() and netfs_put_write_request() are provided to refcount a request. These take constants from the netfs_wreq_trace enum for logging into ftrace. (6) The ->free_write_request is method is called to ask the filesystem to clean up a request. Signed-off-by: David Howells <dhowells@redhat.com> Reviewed-by: Jeff Layton <jlayton@kernel.org> cc: linux-cachefs@redhat.com cc: linux-fsdevel@vger.kernel.org cc: linux-mm@kvack.org
Diffstat (limited to 'fs/netfs/Makefile')
-rw-r--r--fs/netfs/Makefile3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/netfs/Makefile b/fs/netfs/Makefile
index cf3fc847b8ac..c69c6775b8ac 100644
--- a/fs/netfs/Makefile
+++ b/fs/netfs/Makefile
@@ -7,7 +7,8 @@ netfs-y := \
locking.o \
main.o \
misc.o \
- objects.o
+ objects.o \
+ output.o
netfs-$(CONFIG_NETFS_STATS) += stats.o