linux-stable/net/rxrpc
David Howells c5952168e9 rxrpc: Fix client call queueing, waiting for channel
[ Upstream commit 69ffaebb90 ]

rxrpc_get_client_conn() adds a new call to the front of the waiting_calls
queue if the connection it's going to use already exists.  This is bad as
it allows calls to get starved out.

Fix this by adding to the tail instead.

Also change the other enqueue point in the same function to put it on the
front (ie. when we have a new connection).  This makes the point that in
the case of a new connection the new call goes at the front (though it
doesn't actually matter since the queue should be unoccupied).

Fixes: 45025bceef ("rxrpc: Improve management and caching of client connection objects")
Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-19 13:12:39 +01:00
..
af_rxrpc.c Revert "net: simplify sock_poll_wait" 2018-11-04 14:50:51 +01:00
ar-internal.h rxrpc: Fix lockup due to no error backoff after ack transmit error 2018-11-23 08:17:07 +01:00
call_accept.c rxrpc: Fix an uninitialised variable 2018-10-15 22:07:36 -07:00
call_event.c rxrpc: Fix lockup due to no error backoff after ack transmit error 2018-11-23 08:17:07 +01:00
call_object.c rxrpc: Fix the packet reception routine 2018-10-08 22:42:04 +01:00
conn_client.c rxrpc: Fix client call queueing, waiting for channel 2019-03-19 13:12:39 +01:00
conn_event.c rxrpc: Fix connection-level abort handling 2018-10-08 22:42:04 +01:00
conn_object.c rxrpc: Fix error distribution 2018-09-28 10:33:17 +01:00
conn_service.c rxrpc: Fix apparent leak of rxrpc_local objects 2018-03-30 21:05:33 +01:00
input.c rxrpc: Fix the packet reception routine 2018-10-08 22:42:04 +01:00
insecure.c rxrpc: Trace protocol errors in received packets 2017-04-06 11:09:39 +01:00
Kconfig rxrpc: Add config to inject packet loss 2016-09-17 11:24:04 +01:00
key.c rxrpc: Use correct timestamp from Kerberos 5 ticket 2017-08-29 10:55:06 +01:00
local_event.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
local_object.c rxrpc: Fix incorrect conditional on IPV6 2018-10-15 22:19:46 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
misc.c rxrpc: Fix call timeouts 2017-11-24 10:18:41 +00:00
net_ns.c rxrpc: Fix the keepalive generator [ver #2] 2018-08-08 19:10:26 -07:00
output.c rxrpc: Fix lockup due to no error backoff after ack transmit error 2018-11-23 08:17:07 +01:00
peer_event.c rxrpc: Fix a missing rxrpc_put_peer() in the error_report handler 2018-10-15 23:13:42 -07:00
peer_object.c rxrpc: Fix the packet reception routine 2018-10-08 22:42:04 +01:00
proc.c rxrpc: Remove set but not used variable 'nowj' 2018-08-02 10:18:20 -07:00
protocol.h rxrpc: Improve up-front incoming packet checking 2018-09-28 10:32:31 +01:00
recvmsg.c rxrpc: bad unlock balance in rxrpc_recvmsg 2019-02-12 19:47:22 +01:00
rxkad.c Merge ra.kernel.org:/pub/scm/linux/kernel/git/davem/net 2018-08-09 11:52:36 -07:00
security.c rxrpc: remove unused static variables 2018-03-30 21:04:44 +01:00
sendmsg.c rxrpc: Fix missing start of call timeout 2018-05-10 23:26:00 +01:00
skbuff.c net: convert sk_buff.users from atomic_t to refcount_t 2017-07-01 07:39:07 -07:00
sysctl.c rxrpc: remove redundant static int 'zero' 2018-08-11 11:25:18 -07:00
utils.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00