From c1b7d9a3f91c0ef32da48360a372376b3daa00b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ilpo=20J=C3=A4rvinen?= Date: Thu, 15 Nov 2007 19:43:56 -0800 Subject: [PATCH] --- yaml --- r: 78128 b: refs/heads/master c: b7d4815f35ab1d0f1eef2521a94a7d4c789290a2 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/ipv4/tcp_input.c | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 93f2a05dbb3d..0148c8472272 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9f58f3b721f52a4d3f497ea57f830ccd307f1d76 +refs/heads/master: b7d4815f35ab1d0f1eef2521a94a7d4c789290a2 diff --git a/trunk/net/ipv4/tcp_input.c b/trunk/net/ipv4/tcp_input.c index 7a2bfd85fff0..5e01ac2c003c 100644 --- a/trunk/net/ipv4/tcp_input.c +++ b/trunk/net/ipv4/tcp_input.c @@ -1251,7 +1251,6 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_ struct sk_buff *cached_skb; int num_sacks = (ptr[1] - TCPOLEN_SACK_BASE)>>3; int reord = tp->packets_out; - int prior_fackets; int flag = 0; int found_dup_sack = 0; int cached_fack_count; @@ -1264,7 +1263,6 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_ tp->fackets_out = 0; tp->highest_sack = tcp_write_queue_head(sk); } - prior_fackets = tp->fackets_out; found_dup_sack = tcp_check_dsack(tp, ack_skb, sp, num_sacks, prior_snd_una); @@ -1457,7 +1455,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb, u32 prior_snd_ /* New sack for not retransmitted frame, * which was in hole. It is reordering. */ - if (fack_count < prior_fackets) + if (before(TCP_SKB_CB(skb)->seq, + tcp_highest_sack_seq(tp))) reord = min(fack_count, reord); /* SACK enhanced F-RTO (RFC4138; Appendix B) */