Files
linux-stable-mirror/include/trace/events
David Howells 996a7208da rxrpc: Fix missing locking causing hanging calls
[ Upstream commit fc9de52de3 ]

If a call gets aborted (e.g. because kafs saw a signal) between it being
queued for connection and the I/O thread picking up the call, the abort
will be prioritised over the connection and it will be removed from
local->new_client_calls by rxrpc_disconnect_client_call() without a lock
being held.  This may cause other calls on the list to disappear if a race
occurs.

Fix this by taking the client_call_lock when removing a call from whatever
list its ->wait_link happens to be on.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-afs@lists.infradead.org
Reported-by: Marc Dionne <marc.dionne@auristor.com>
Fixes: 9d35d880e0 ("rxrpc: Move client call connection to the I/O thread")
Link: https://patch.msgid.link/726660.1730898202@warthog.procyon.org.uk
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-14 13:19:32 +01:00
..
2023-08-02 09:13:09 -06:00
2023-08-10 10:33:03 -05:00
2023-07-04 19:40:16 +01:00
2023-07-04 19:40:16 +01:00
2023-03-24 11:01:29 +01:00
2023-03-28 16:20:08 -07:00
2023-07-17 08:18:17 -06:00
2023-06-17 13:18:06 -04:00
2023-05-31 11:05:34 -04:00
2023-08-29 17:45:22 -04:00
2023-07-17 08:18:17 -06:00
2023-09-19 07:04:49 +02:00