OpenCloudOS-Kernel/net/rxrpc
David Howells fdade4f69e rxrpc: Make service connection lookup always check for retry
When an RxRPC service packet comes in, the target connection is looked up
by an rb-tree search under RCU and a read-locked seqlock; the seqlock retry
check is, however, currently skipped if we got a match, but probably
shouldn't be in case the connection we found gets replaced whilst we're
doing a search.

Make the lookup procedure always go through need_seqretry(), even if the
lookup was successful.  This makes sure we always pick up on a write-lock
event.

On the other hand, since we don't take a ref on the object, but rely on RCU
to prevent its destruction after dropping the seqlock, I'm not sure this is
necessary.

Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-09-05 14:39:17 -07:00
..
Kconfig rxrpc: Add config to inject packet loss 2016-09-17 11:24:04 +01:00
Makefile rxrpc: Support network namespacing 2017-05-25 13:15:11 -04:00
af_rxrpc.c rxrpc: Allow failed client calls to be retried 2017-08-29 10:55:20 +01:00
ar-internal.h rxrpc: Allow failed client calls to be retried 2017-08-29 10:55:20 +01:00
call_accept.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
call_event.c rxrpc: Use negative error codes in rxrpc_call struct 2017-04-06 10:11:56 +01:00
call_object.c rxrpc: Allow failed client calls to be retried 2017-08-29 10:55:20 +01:00
conn_client.c rxrpc: Allow failed client calls to be retried 2017-08-29 10:55:20 +01:00
conn_event.c rxrpc: Separate the connection's protocol service ID from the lookup ID 2017-06-05 14:30:49 +01:00
conn_object.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
conn_service.c rxrpc: Make service connection lookup always check for retry 2017-09-05 14:39:17 -07:00
input.c rxrpc: Add service upgrade support for client connections 2017-06-05 14:30:49 +01:00
insecure.c rxrpc: Trace protocol errors in received packets 2017-04-06 11:09:39 +01:00
key.c rxrpc: Use correct timestamp from Kerberos 5 ticket 2017-08-29 10:55:06 +01:00
local_event.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
local_object.c rxrpc: Permit multiple service binding 2017-06-05 14:30:49 +01:00
misc.c rxrpc: Fix handling of enums-to-string translation in tracing 2017-01-05 10:38:33 +00:00
net_ns.c rxrpc: remove redundant proc_remove call 2017-06-04 19:59:11 -04:00
output.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
peer_event.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
peer_object.c rxrpc: Cache the congestion window setting 2017-06-14 15:42:45 -04:00
proc.c rxrpc: Separate the connection's protocol service ID from the lookup ID 2017-06-05 14:30:49 +01:00
protocol.h rxrpc: Move the packet.h include file into net/rxrpc/ 2017-07-21 11:00:20 +01:00
recvmsg.c rxrpc: Separate the connection's protocol service ID from the lookup ID 2017-06-05 14:30:49 +01:00
rxkad.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00
security.c rxrpc: Permit multiple service binding 2017-06-05 14:30:49 +01:00
sendmsg.c rxrpc: Allow failed client calls to be retried 2017-08-29 10:55:20 +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: Keep the call timeouts as ktimes rather than jiffies 2016-09-30 14:40:11 +01:00
utils.c rxrpc: Fix IPv6 support 2017-08-29 10:55:20 +01:00