diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/tcp_input.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 031cf72cd05c..a7ef679dd3ea 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c | |||
@@ -3099,17 +3099,15 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets, | |||
3099 | if (sacked & TCPCB_SACKED_RETRANS) | 3099 | if (sacked & TCPCB_SACKED_RETRANS) |
3100 | tp->retrans_out -= acked_pcount; | 3100 | tp->retrans_out -= acked_pcount; |
3101 | flag |= FLAG_RETRANS_DATA_ACKED; | 3101 | flag |= FLAG_RETRANS_DATA_ACKED; |
3102 | } else { | 3102 | } else if (!(sacked & TCPCB_SACKED_ACKED)) { |
3103 | last_ackt = skb->skb_mstamp; | 3103 | last_ackt = skb->skb_mstamp; |
3104 | WARN_ON_ONCE(last_ackt.v64 == 0); | 3104 | WARN_ON_ONCE(last_ackt.v64 == 0); |
3105 | if (!first_ackt.v64) | 3105 | if (!first_ackt.v64) |
3106 | first_ackt = last_ackt; | 3106 | first_ackt = last_ackt; |
3107 | 3107 | ||
3108 | if (!(sacked & TCPCB_SACKED_ACKED)) { | 3108 | reord = min(pkts_acked, reord); |
3109 | reord = min(pkts_acked, reord); | 3109 | if (!after(scb->end_seq, tp->high_seq)) |
3110 | if (!after(scb->end_seq, tp->high_seq)) | 3110 | flag |= FLAG_ORIG_SACK_ACKED; |
3111 | flag |= FLAG_ORIG_SACK_ACKED; | ||
3112 | } | ||
3113 | } | 3111 | } |
3114 | 3112 | ||
3115 | if (sacked & TCPCB_SACKED_ACKED) | 3113 | if (sacked & TCPCB_SACKED_ACKED) |