|
@@ -3099,17 +3099,15 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,
|
|
if (sacked & TCPCB_SACKED_RETRANS)
|
|
if (sacked & TCPCB_SACKED_RETRANS)
|
|
tp->retrans_out -= acked_pcount;
|
|
tp->retrans_out -= acked_pcount;
|
|
flag |= FLAG_RETRANS_DATA_ACKED;
|
|
flag |= FLAG_RETRANS_DATA_ACKED;
|
|
- } else {
|
|
|
|
|
|
+ } else if (!(sacked & TCPCB_SACKED_ACKED)) {
|
|
last_ackt = skb->skb_mstamp;
|
|
last_ackt = skb->skb_mstamp;
|
|
WARN_ON_ONCE(last_ackt.v64 == 0);
|
|
WARN_ON_ONCE(last_ackt.v64 == 0);
|
|
if (!first_ackt.v64)
|
|
if (!first_ackt.v64)
|
|
first_ackt = last_ackt;
|
|
first_ackt = last_ackt;
|
|
|
|
|
|
- if (!(sacked & TCPCB_SACKED_ACKED)) {
|
|
|
|
- reord = min(pkts_acked, reord);
|
|
|
|
- if (!after(scb->end_seq, tp->high_seq))
|
|
|
|
- flag |= FLAG_ORIG_SACK_ACKED;
|
|
|
|
- }
|
|
|
|
|
|
+ reord = min(pkts_acked, reord);
|
|
|
|
+ if (!after(scb->end_seq, tp->high_seq))
|
|
|
|
+ flag |= FLAG_ORIG_SACK_ACKED;
|
|
}
|
|
}
|
|
|
|
|
|
if (sacked & TCPCB_SACKED_ACKED)
|
|
if (sacked & TCPCB_SACKED_ACKED)
|