[TCP] FRTO: Incorrectly clears TCPCB_EVER_RETRANS bit
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Thu, 22 Feb 2007 06:54:52 +0000 (22:54 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 26 Apr 2007 05:23:00 +0000 (22:23 -0700)
FRTO was slightly too brave... Should only clear
TCPCB_SACKED_RETRANS bit.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/tcp_input.c

index 1a14191687ac752fcbbe4fa324517554a251950f..b21e232d5d3337c744ed30643669bf04ca6b63f7 100644 (file)
@@ -1266,7 +1266,7 @@ void tcp_enter_frto(struct sock *sk)
        tp->undo_retrans = 0;
 
        sk_stream_for_retrans_queue(skb, sk) {
-               TCP_SKB_CB(skb)->sacked &= ~TCPCB_RETRANS;
+               TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS;
        }
        tcp_sync_left_out(tp);