aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Heffner <jheffner@psc.edu>2007-02-14 09:34:43 +0100
committerAdrian Bunk <bunk@stusta.de>2007-02-14 09:34:43 +0100
commitb455317374ac03ebc895723774d7b6359355a422 (patch)
tree94726a3bb14306bb01a636ee4bea4cd34c3f384f
parentd87345bcbc5e636f60df56845a39e00d6ae22911 (diff)
[TCP]: Don't apply FIN exception to full TSO segments.
Signed-off-by: John Heffner <jheffner@psc.edu> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Adrian Bunk <bunk@stusta.de>
-rw-r--r--net/ipv4/tcp_output.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 310f2e61058..56aba0f0ba5 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -830,7 +830,8 @@ static inline unsigned int tcp_cwnd_test(struct tcp_sock *tp, struct sk_buff *sk
u32 in_flight, cwnd;
/* Don't be strict about the congestion window for the final FIN. */
- if (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN)
+ if ((TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN) &&
+ tcp_skb_pcount(skb) == 1)
return 1;
in_flight = tcp_packets_in_flight(tp);