summaryrefslogtreecommitdiff
path: root/fs/afs/rxrpc.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2018-10-20 02:57:58 +0300
committerDavid Howells <dhowells@redhat.com>2018-10-24 02:41:08 +0300
commit12d8e95a911eb3921a1fecf1e4d913654f6f4fb5 (patch)
treefc9823c56bfaac4b746c3d3f84bd7470b07b7ee4 /fs/afs/rxrpc.c
parent36bb5f490a542f230beb982475b56d79d72033de (diff)
downloadlinux-12d8e95a911eb3921a1fecf1e4d913654f6f4fb5.tar.xz
afs: Calc callback expiry in op reply delivery
Calculate the callback expiration time at the point of operation reply delivery, using the reply time queried from AF_RXRPC on that call as a base. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'fs/afs/rxrpc.c')
-rw-r--r--fs/afs/rxrpc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
index ce98e133caa6..444ba0d511ef 100644
--- a/fs/afs/rxrpc.c
+++ b/fs/afs/rxrpc.c
@@ -499,6 +499,12 @@ static void afs_deliver_to_call(struct afs_call *call)
return;
}
+ if (call->want_reply_time &&
+ rxrpc_kernel_get_reply_time(call->net->socket,
+ call->rxcall,
+ &call->reply_time))
+ call->want_reply_time = false;
+
ret = call->type->deliver(call);
state = READ_ONCE(call->state);
switch (ret) {