[PATCH net] rxrpc: Fix deadlock between call creation and sendmsg/recvmsg

David Miller davem at davemloft.net
Wed Mar 1 09:51:26 PST 2017


From: David Howells <dhowells at redhat.com>
Date: Mon, 27 Feb 2017 15:43:06 +0000

> All the routines by which rxrpc is accessed from the outside are serialised
> by means of the socket lock (sendmsg, recvmsg, bind,
> rxrpc_kernel_begin_call(), ...) and this presents a problem:
 ...
> Fix this by:
 ...
> This patch has the nice bonus that calls on the same socket are now to some
> extent parallelisable.
> 
> 
> Note that we might want to move rxrpc_service_prealloc() calls out from the
> socket lock and give it its own lock, so that we don't hang progress in
> other calls because we're waiting for the allocator.
> 
> We probably also want to avoid calling rxrpc_notify_socket() from within
> the socket lock (rxrpc_accept_call()).
> 
> Signed-off-by: David Howells <dhowells at redhat.com>
> Tested-by: Marc Dionne <marc.c.dionne at auristor.com>

Applied, thanks David.



More information about the linux-afs mailing list