path: root/net/rxrpc/local_object.c
diff options
authorDavid Howells <dhowells@redhat.com>2016-09-29 22:37:15 +0100
committerDavid Howells <dhowells@redhat.com>2016-09-29 22:57:47 +0100
commit2629c7fa7c0adfdf023051b404cd538951bd0354 (patch)
tree0875f34ec86644b5d728006feefdf33c7943cadb /net/rxrpc/local_object.c
parenta1767077b0176de17fa40ec743a20cbdac7a0d56 (diff)
rxrpc: When activating client conn channels, do state check inside lock
In rxrpc_activate_channels(), the connection cache state is checked outside of the lock, which means it can change whilst we're waking calls up, thereby changing whether or not we're allowed to wake calls up. Fix this by moving the check inside the locked region. The check to see if all the channels are currently busy can stay outside of the locked region. Whilst we're at it: (1) Split the locked section out into its own function so that we can call it from other places in a later patch. (2) Determine the mask of channels dependent on the state as we're going to add another state in a later patch that will restrict the number of simultaneous calls to 1 on a connection. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/local_object.c')
0 files changed, 0 insertions, 0 deletions