]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-client.git/commit
afs: Set up the iov_iter before calling afs_extract_data()
authorDavid Howells <dhowells@redhat.com>
Thu, 6 Feb 2020 14:22:28 +0000 (14:22 +0000)
committerDavid Howells <dhowells@redhat.com>
Thu, 28 Jan 2021 10:57:12 +0000 (10:57 +0000)
commit442a1924037ef0b6d62570df041640cbb3dbfbb2
tree34e32db0f5c22449a48b2971f256a539d5dff183
parentdf901e88439698311708b748c455275afab3b2b3
afs: Set up the iov_iter before calling afs_extract_data()

afs_extract_data() sets up a temporary iov_iter and passes it to AF_RXRPC
each time it is called to describe the remaining buffer to be filled.

Instead:

 (1) Put an iterator in the afs_call struct.

 (2) Set the iterator for each marshalling stage to load data into the
     appropriate places.  A number of convenience functions are provided to
     this end (eg. afs_extract_to_buf()).

     This iterator is then passed to afs_extract_data().

 (3) Use the new ITER_MAPPING iterator when reading data to load directly
     into the inode's pages without needing to create a list of them.

This will allow O_DIRECT calls to be supported in future patches.

Signed-off-by: David Howells <dhowells@redhat.com>
fs/afs/dir.c
fs/afs/file.c
fs/afs/fsclient.c
fs/afs/internal.h
fs/afs/write.c
fs/afs/yfsclient.c