diff options
author | David S. Miller <davem@davemloft.net> | 2005-07-05 18:19:38 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-07-05 18:19:38 -0400 |
commit | 55c97f3e990c1ff63957c64f6cb10711a09fd70e (patch) | |
tree | 003c5ca17005c8b22cc4cbe0b10721fc4ea676fd /include/net | |
parent | a2e2a59c93cc8ba39caa9011c2573f429e40ccd9 (diff) |
[TCP]: Fix __tcp_push_pending_frames() 'nonagle' handling.
'nonagle' should be passed to the tcp_snd_test() function
as 'TCP_NAGLE_PUSH' if we are checking an SKB not at the
tail of the write_queue. This is because Nagle does not
apply to such frames since we cannot possibly tack more
data onto them.
However, while doing this __tcp_push_pending_frames() makes
all of the packets in the write_queue use this modified
'nonagle' value.
Fix the bug and simplify this function by just calling
tcp_write_xmit() directly if sk_send_head is non-NULL.
As a result, we can now make tcp_data_snd_check() just call
tcp_push_pending_frames() instead of the specialized
__tcp_data_snd_check().
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net')
-rw-r--r-- | include/net/tcp.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/net/tcp.h b/include/net/tcp.h index 9416236cc395..b19238027da8 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h | |||
@@ -848,7 +848,6 @@ extern __u32 cookie_v4_init_sequence(struct sock *sk, struct sk_buff *skb, | |||
848 | 848 | ||
849 | /* tcp_output.c */ | 849 | /* tcp_output.c */ |
850 | 850 | ||
851 | extern void __tcp_data_snd_check(struct sock *sk, struct sk_buff *skb); | ||
852 | extern void __tcp_push_pending_frames(struct sock *sk, struct tcp_sock *tp, | 851 | extern void __tcp_push_pending_frames(struct sock *sk, struct tcp_sock *tp, |
853 | unsigned int cur_mss, int nonagle); | 852 | unsigned int cur_mss, int nonagle); |
854 | extern int tcp_may_send_now(struct sock *sk, struct tcp_sock *tp); | 853 | extern int tcp_may_send_now(struct sock *sk, struct tcp_sock *tp); |