summaryrefslogtreecommitdiffstats
path: root/crypto/lrw.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2020-06-17 15:46:33 +0100
committerDavid Howells <dhowells@redhat.com>2020-06-17 23:01:39 +0100
commit02c28dffb13abbaaedece1e4a6493b48ad3f913a (patch)
tree5053f6cb96790a33df1c5aa1179fbc675447c611 /crypto/lrw.c
parenta2ad7c21ad8cf1ce4ad65e13df1c2a1c29b38ac5 (diff)
downloadlinux-02c28dffb13abbaaedece1e4a6493b48ad3f913a.tar.gz
linux-02c28dffb13abbaaedece1e4a6493b48ad3f913a.tar.bz2
linux-02c28dffb13abbaaedece1e4a6493b48ad3f913a.zip
rxrpc: Fix afs large storage transmission performance drop
Commit 2ad6691d988c, 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: 2ad6691d988c ("rxrpc: Fix race between incoming ACK parser and retransmitter") Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'crypto/lrw.c')
0 files changed, 0 insertions, 0 deletions