summaryrefslogtreecommitdiffstats
path: root/net/rxrpc/conn_object.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2022-10-12 16:42:06 +0200
committerDavid Howells <dhowells@redhat.com>2022-12-01 14:36:41 +0100
commit29fb4ec385f18db98d9188c2173a0b07d2de6917 (patch)
tree5421332d90da716ec1aaf36574cfe68af7f994e2 /net/rxrpc/conn_object.c
parentrxrpc: Move DATA transmission into call processor work item (diff)
downloadlinux-29fb4ec385f18db98d9188c2173a0b07d2de6917.tar.xz
linux-29fb4ec385f18db98d9188c2173a0b07d2de6917.zip
rxrpc: Remove RCU from peer->error_targets list
Remove the RCU requirements from the peer's list of error targets so that the error distributor can call sleeping functions. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org
Diffstat (limited to 'net/rxrpc/conn_object.c')
-rw-r--r--net/rxrpc/conn_object.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/rxrpc/conn_object.c b/net/rxrpc/conn_object.c
index c2e05ea29f12..5a39255ea014 100644
--- a/net/rxrpc/conn_object.c
+++ b/net/rxrpc/conn_object.c
@@ -215,9 +215,9 @@ void rxrpc_disconnect_call(struct rxrpc_call *call)
call->peer->cong_ssthresh = call->cong_ssthresh;
if (!hlist_unhashed(&call->error_link)) {
- spin_lock_bh(&call->peer->lock);
- hlist_del_rcu(&call->error_link);
- spin_unlock_bh(&call->peer->lock);
+ spin_lock(&call->peer->lock);
+ hlist_del_init(&call->error_link);
+ spin_unlock(&call->peer->lock);
}
if (rxrpc_is_client_call(call))