summaryrefslogtreecommitdiffstats
path: root/ipc
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2017-08-29 10:19:01 +0100
committerDavid Howells <dhowells@redhat.com>2017-08-29 10:55:20 +0100
commitc038a58ccfd6704d4d7d60ed3d6a0fca13cf13a4 (patch)
tree3848dab9427af484ad93bfef5030fce14c58b117 /ipc
parente833251ad813168253fef9915aaf6a8c883337b0 (diff)
downloadlinux-stable-c038a58ccfd6704d4d7d60ed3d6a0fca13cf13a4.tar.gz
linux-stable-c038a58ccfd6704d4d7d60ed3d6a0fca13cf13a4.tar.bz2
linux-stable-c038a58ccfd6704d4d7d60ed3d6a0fca13cf13a4.zip
rxrpc: Allow failed client calls to be retried
Allow a client call that failed on network error to be retried, provided that the Tx queue still holds DATA packet 1. This allows an operation to be submitted to another server or another address for the same server without having to repackage and re-encrypt the data so far processed. Two new functions are provided: (1) rxrpc_kernel_check_call() - This is used to find out the completion state of a call to guess whether it can be retried and whether it should be retried. (2) rxrpc_kernel_retry_call() - Disconnect the call from its current connection, reset the state and submit it as a new client call to a new address. The new address need not match the previous address. A call may be retried even if all the data hasn't been loaded into it yet; a partially constructed will be retained at the same point it was at when an error condition was detected. msg_data_left() can be used to find out how much data was packaged before the error occurred. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'ipc')
0 files changed, 0 insertions, 0 deletions