netfs: Extend the netfs_io_*request structs to handle writes
authorDavid Howells <dhowells@redhat.com>
Wed, 9 Feb 2022 19:52:13 +0000 (19:52 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 28 Dec 2023 09:45:19 +0000 (09:45 +0000)
commit16af134ca4b7051b1587108f2066ec90ae029f74
tree6fd9a9d2b89b15a68a9c9db560c1f209f4fdc747
parent768ddb1eacf5dd997ecf393e7bab9796bad047e0
netfs: Extend the netfs_io_*request structs to handle writes

Modify the netfs_io_request struct to act as a point around which writes
can be coordinated.  It represents and pins a range of pages that need
writing and a list of regions of dirty data in that range of pages.

If RMW is required, the original data can be downloaded into the bounce
buffer, decrypted if necessary, the modifications made, then the modified
data can be reencrypted/recompressed and sent back to the server.

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
fs/netfs/internal.h
fs/netfs/main.c
fs/netfs/objects.c
fs/netfs/stats.c
include/linux/netfs.h
include/trace/events/netfs.h