diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index e70a6840cb64..0faacf9c419d 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -1035,8 +1035,10 @@ static inline int tcp_nagle_test(struct tcp_sock *tp, struct sk_buff *skb, | |||
1035 | if (nonagle & TCP_NAGLE_PUSH) | 1035 | if (nonagle & TCP_NAGLE_PUSH) |
1036 | return 1; | 1036 | return 1; |
1037 | 1037 | ||
1038 | /* Don't use the nagle rule for urgent data (or for the final FIN). */ | 1038 | /* Don't use the nagle rule for urgent data (or for the final FIN). |
1039 | if (tp->urg_mode || | 1039 | * Nagle can be ignored during F-RTO too (see RFC4138). |
1040 | */ | ||
1041 | if (tp->urg_mode || (tp->frto_counter == 2) || | ||
1040 | (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN)) | 1042 | (TCP_SKB_CB(skb)->flags & TCPCB_FLAG_FIN)) |
1041 | return 1; | 1043 | return 1; |
1042 | 1044 | ||
@@ -2035,7 +2037,7 @@ void tcp_send_fin(struct sock *sk) | |||
2035 | /* We get here when a process closes a file descriptor (either due to | 2037 | /* We get here when a process closes a file descriptor (either due to |
2036 | * an explicit close() or as a byproduct of exit()'ing) and there | 2038 | * an explicit close() or as a byproduct of exit()'ing) and there |
2037 | * was unread data in the receive queue. This behavior is recommended | 2039 | * was unread data in the receive queue. This behavior is recommended |
2038 | * by draft-ietf-tcpimpl-prob-03.txt section 3.10. -DaveM | 2040 | * by RFC 2525, section 2.17. -DaveM |
2039 | */ | 2041 | */ |
2040 | void tcp_send_active_reset(struct sock *sk, gfp_t priority) | 2042 | void tcp_send_active_reset(struct sock *sk, gfp_t priority) |
2041 | { | 2043 | { |