• David Howells's avatar
    rxrpc: Fix afs large storage transmission performance drop · 02c28dff
    David Howells authored
    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>
    02c28dff
call_event.c 12 KB