aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv4/tcp_input.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index b59da5308ac0..12ae9a68cdaa 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -1704,6 +1704,8 @@ static void tcp_enter_frto_loss(struct sock *sk, int allowed_segments, int flag)
1704 tcp_for_write_queue(skb, sk) { 1704 tcp_for_write_queue(skb, sk) {
1705 if (skb == tcp_send_head(sk)) 1705 if (skb == tcp_send_head(sk))
1706 break; 1706 break;
1707
1708 TCP_SKB_CB(skb)->sacked &= ~TCPCB_LOST;
1707 /* 1709 /*
1708 * Count the retransmission made on RTO correctly (only when 1710 * Count the retransmission made on RTO correctly (only when
1709 * waiting for the first ACK and did not get it)... 1711 * waiting for the first ACK and did not get it)...
@@ -1717,7 +1719,7 @@ static void tcp_enter_frto_loss(struct sock *sk, int allowed_segments, int flag)
1717 } else { 1719 } else {
1718 if (TCP_SKB_CB(skb)->sacked & TCPCB_RETRANS) 1720 if (TCP_SKB_CB(skb)->sacked & TCPCB_RETRANS)
1719 tp->undo_marker = 0; 1721 tp->undo_marker = 0;
1720 TCP_SKB_CB(skb)->sacked &= ~(TCPCB_LOST|TCPCB_SACKED_RETRANS); 1722 TCP_SKB_CB(skb)->sacked &= ~TCPCB_SACKED_RETRANS;
1721 } 1723 }
1722 1724
1723 /* Don't lost mark skbs that were fwd transmitted after RTO */ 1725 /* Don't lost mark skbs that were fwd transmitted after RTO */