linux/net/rxrpc
David Howells 02c28dffb1 rxrpc: Fix afs large storage transmission performance drop
Commit 2ad6691d98, which moved the modification of the status annotation
for a packet in the Tx buffer prior to the retransmission moved the state
clearance, but managed to lose the bit that set it to UNACK.

Consequently, if a retransmission occurs, the packet is accidentally
changed to the ACK state (ie. 0) by masking it off, which means that the
packet isn't counted towards the tally of newly-ACK'd packets if it gets
hard-ACK'd.  This then prevents the congestion control algorithm from
recovering properly.

Fix by reinstating the change of state to UNACK.

Spotted by the generic/460 xfstest.

Fixes: 2ad6691d98 ("rxrpc: Fix race between incoming ACK parser and retransmitter")
Signed-off-by: David Howells <dhowells@redhat.com>
2020-06-17 23:01:39 +01:00
..
af_rxrpc.c rxrpc: add rxrpc_sock_set_min_security_level 2020-05-28 11:11:46 -07:00
ar-internal.h rxrpc: Move the call completion handling out of line 2020-06-05 13:36:35 +01:00
call_accept.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
call_event.c rxrpc: Fix afs large storage transmission performance drop 2020-06-17 23:01:39 +01:00
call_object.c rxrpc: Fix call interruptibility handling 2020-03-13 23:04:30 +00:00
conn_client.c rxrpc: Fix call interruptibility handling 2020-03-13 23:04:30 +00:00
conn_event.c rxrpc: Fix missing notification 2020-06-05 13:36:35 +01:00
conn_object.c rxrpc: Fix service call disconnection 2020-02-07 11:19:38 +01:00
conn_service.c rxrpc: Fix missing security check on incoming calls 2019-12-20 16:21:32 +00:00
input.c rxrpc: Fix handling of rwind from an ACK packet 2020-06-17 23:01:32 +01:00
insecure.c rxrpc: Fix -Wframe-larger-than= warnings from on-stack crypto 2019-07-30 10:32:35 -07:00
Kconfig docs: networking: convert rxrpc.txt to ReST 2020-04-30 12:56:38 -07:00
key.c KEYS: Don't write out to userspace while holding key semaphore 2020-03-29 12:40:41 +01:00
local_event.c rxrpc: Use the tx-phase skb flag to simplify tracing 2019-08-27 10:04:18 +01:00
local_object.c ipv6: add ip6_sock_set_recverr 2020-05-28 11:11:45 -07:00
Makefile rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
misc.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
net_ns.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00
output.c ipv4: add ip_sock_set_mtu_discover 2020-05-28 11:11:45 -07:00
peer_event.c rxrpc fixes 2020-06-08 19:13:37 -07:00
peer_object.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
proc.c rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID 2020-05-31 15:19:51 +01:00
protocol.h rxrpc: Improve jumbo packet counting 2019-08-27 09:48:37 +01:00
recvmsg.c rxrpc: Fix missing notification 2020-06-05 13:36:35 +01:00
rtt.c rxrpc: Fix the excessive initial retransmission timeout 2020-05-11 16:42:28 +01:00
rxkad.c rxrpc: Fix a memory leak in rxkad_verify_response() 2020-05-23 00:35:46 +01:00
security.c rxrpc: Fix missing security check on incoming calls 2019-12-20 16:21:32 +00:00
sendmsg.c rxrpc: Fix missing notification 2020-06-05 13:36:35 +01:00
skbuff.c rxrpc: Use skb_unshare() rather than skb_cow_data() 2019-08-27 10:13:46 +01:00
sysctl.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-24 13:47:27 -07:00
utils.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 2019-05-24 17:27:11 +02:00