diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e787ecec505e..163cf5fc0119 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -78,10 +78,6 @@ static void tcp_event_new_data_sent(struct sock *sk, const struct sk_buff *skb) | |||
78 | tcp_advance_send_head(sk, skb); | 78 | tcp_advance_send_head(sk, skb); |
79 | tp->snd_nxt = TCP_SKB_CB(skb)->end_seq; | 79 | tp->snd_nxt = TCP_SKB_CB(skb)->end_seq; |
80 | 80 | ||
81 | /* Don't override Nagle indefinitely with F-RTO */ | ||
82 | if (tp->frto_counter == 2) | ||
83 | tp->frto_counter = 3; | ||
84 | |||
85 | tp->packets_out += tcp_skb_pcount(skb); | 81 | tp->packets_out += tcp_skb_pcount(skb); |
86 | if (!prior_packets || icsk->icsk_pending == ICSK_TIME_EARLY_RETRANS || | 82 | if (!prior_packets || icsk->icsk_pending == ICSK_TIME_EARLY_RETRANS || |
87 | icsk->icsk_pending == ICSK_TIME_LOSS_PROBE) | 83 | icsk->icsk_pending == ICSK_TIME_LOSS_PROBE) |
@@ -1470,11 +1466,8 @@ static inline bool tcp_nagle_test(const struct tcp_sock *tp, const struct sk_buf | |||
1470 | if (nonagle & TCP_NAGLE_PUSH) | 1466 | if (nonagle & TCP_NAGLE_PUSH) |
1471 | return true; | 1467 | return true; |
1472 | 1468 | ||
1473 | /* Don't use the nagle rule for urgent data (or for the final FIN). | 1469 | /* Don't use the nagle rule for urgent data (or for the final FIN). */ |
1474 | * Nagle can be ignored during F-RTO too (see RFC4138). | 1470 | if (tcp_urg_mode(tp) || (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN)) |
1475 | */ | ||
1476 | if (tcp_urg_mode(tp) || (tp->frto_counter == 2) || | ||
1477 | (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN)) | ||
1478 | return true; | 1471 | return true; |
1479 | 1472 | ||
1480 | if (!tcp_nagle_check(tp, skb, cur_mss, nonagle)) | 1473 | if (!tcp_nagle_check(tp, skb, cur_mss, nonagle)) |