Skip to content
  • David Howells's avatar
    rxrpc: Fix accidental cancellation of scheduled resend by ACK parser · be8aa338
    David Howells authored
    
    
    When rxrpc_input_soft_acks() is parsing the soft-ACKs from an ACK packet,
    it updates the Tx packet annotations in the annotation buffer.  If a
    soft-ACK is an ACK, then we overwrite unack'd, nak'd or to-be-retransmitted
    states and that is fine; but if the soft-ACK is an NACK, we overwrite the
    to-be-retransmitted with a nak - which isn't.
    
    Instead, we need to let any scheduled retransmission stand if the packet
    was NAK'd.
    
    Note that we don't reissue a resend if the annotation is in the
    to-be-retransmitted state because someone else must've scheduled the
    resend already.
    
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    be8aa338