diff options
author | David Howells <dhowells@redhat.com> | 2018-10-08 15:46:17 +0100 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-10-08 22:42:04 +0100 |
commit | 647530924f47c93db472ee3cf43b7ef1425581b6 (patch) | |
tree | 49c180e0069489ae18d8f60fcf089da7d523ed86 /net/rxrpc/call_accept.c | |
parent | 298bc15b2079c324e82d0a6fda39c3d762af7282 (diff) | |
download | op-kernel-dev-647530924f47c93db472ee3cf43b7ef1425581b6.zip op-kernel-dev-647530924f47c93db472ee3cf43b7ef1425581b6.tar.gz |
rxrpc: Fix connection-level abort handling
Fix connection-level abort handling to cache the abort and error codes
properly so that a new incoming call can be properly aborted if it races
with the parent connection being aborted by another CPU.
The abort_code and error parameters can then be dropped from
rxrpc_abort_calls().
Fixes: f5c17aaeb2ae ("rxrpc: Calls should only have one terminal state")
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/call_accept.c')
-rw-r--r-- | net/rxrpc/call_accept.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/rxrpc/call_accept.c b/net/rxrpc/call_accept.c index f55f678..1c4ebc0 100644 --- a/net/rxrpc/call_accept.c +++ b/net/rxrpc/call_accept.c @@ -405,11 +405,11 @@ struct rxrpc_call *rxrpc_new_incoming_call(struct rxrpc_local *local, case RXRPC_CONN_REMOTELY_ABORTED: rxrpc_set_call_completion(call, RXRPC_CALL_REMOTELY_ABORTED, - conn->remote_abort, -ECONNABORTED); + conn->abort_code, conn->error); break; case RXRPC_CONN_LOCALLY_ABORTED: rxrpc_abort_call("CON", call, sp->hdr.seq, - conn->local_abort, -ECONNABORTED); + conn->abort_code, conn->error); break; default: BUG(); |