Skip to content
Commit 02c28dff authored by David Howells's avatar David Howells
Browse files

rxrpc: Fix afs large storage transmission performance drop



Commit 2ad6691d, 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: 2ad6691d ("rxrpc: Fix race between incoming ACK parser and retransmitter")
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
parent a2ad7c21
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment