From 6148aa89466fe482e2670b858e6a64a6027e3fd2 Mon Sep 17 00:00:00 2001 From: Yuchung Cheng Date: Fri, 24 Sep 2010 13:22:06 +0000 Subject: [PATCH] --- yaml --- r: 211123 b: refs/heads/master c: b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0 h: refs/heads/master i: 211121: d6e85a794f5f13e14d0331e575b794d2c552cf89 211119: 7bf874ff63dcd5316eb60fd6fdef322df4bd6934 v: v3 --- [refs] | 2 +- trunk/net/ipv4/tcp_input.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 61b6eb88e908..90a9390b332e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3fd6c88ef875a14740801ebfc6b6e4e064a1cdd4 +refs/heads/master: b3de7559afbb7a8a35b4be975a6adf6c5e3cdca0 diff --git a/trunk/net/ipv4/tcp_input.c b/trunk/net/ipv4/tcp_input.c index 149e79ac2891..b55f60f6fcbe 100644 --- a/trunk/net/ipv4/tcp_input.c +++ b/trunk/net/ipv4/tcp_input.c @@ -2545,7 +2545,8 @@ static void tcp_mark_head_lost(struct sock *sk, int packets) cnt += tcp_skb_pcount(skb); if (cnt > packets) { - if (tcp_is_sack(tp) || (oldcnt >= packets)) + if ((tcp_is_sack(tp) && !tcp_is_fack(tp)) || + (oldcnt >= packets)) break; mss = skb_shinfo(skb)->gso_size;