OSDN Git Service

afs: Use the fs operation ops to handle FetchData completion
authorDavid Howells <dhowells@redhat.com>
Fri, 18 Sep 2020 08:11:15 +0000 (09:11 +0100)
committerDavid Howells <dhowells@redhat.com>
Fri, 23 Apr 2021 09:17:28 +0000 (10:17 +0100)
commitdc4191841d0998978349e9119ab2ccb080b8b957
tree5690ce2e8626a3032d78a2a906f33909a9ac14f6
parente87b03f5830ecd8ca21836d3ee48c74f8d58fa31
afs: Use the fs operation ops to handle FetchData completion

Use the 'success' and 'aborted' afs_operations_ops methods and add a
'failed' method to handle the completion of an AFS.FetchData,
AFS.FetchData64 or YFS.FetchData64 RPC operation rather than directly
calling the done func pointed to by the afs_read struct from the call
delivery handler.

This means the done function will be called back on error also, not just on
successful completion.

This allows motion towards asynchronous data reception on data fetch calls
and allows any error to be handed off to the fscache read helper in the
same place as a successful completion.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-By: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
cc: linux-cachefs@redhat.com
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/160588541471.3465195.8807019223378490810.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161118157260.1232039.6549085372718234792.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161161052647.2537118.12922380836599003659.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161340417106.1303470.3502017303898569631.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161539560673.286939.391310781674212229.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161653816367.2770958.5856904574822446404.stgit@warthog.procyon.org.uk/
Link: https://lore.kernel.org/r/161789099994.6155.473719823490561190.stgit@warthog.procyon.org.uk/
fs/afs/file.c
fs/afs/fs_operation.c
fs/afs/fsclient.c
fs/afs/internal.h
fs/afs/yfsclient.c