diff options
-rw-r--r-- | net/ipv4/tcp_input.c | 4 |
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 */ |