diff options
author | Eric Dumazet <edumazet@google.com> | 2012-07-12 18:46:09 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-07-13 08:48:36 -0400 |
commit | d01cb20711e3c2df41677ee270d6bdeff24e9902 (patch) | |
tree | c2334bdf33a634fc81648338d00623e3ab8f8874 /net/ipv4/tcp_output.c | |
parent | 02eca3f5f5e458c3a5d7b772bc8042ee2a4ebedf (diff) |
tcp: add LAST_ACK as a valid state for TSQ
Socket state LAST_ACK should allow TSQ to send additional frames,
or else we rely on incoming ACKS or timers to send them.
Reported-by: Yuchung Cheng <ycheng@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Matt Mathis <mattmathis@google.com>
Cc: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 03854abfd9d8..15a7c7bc3e58 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -838,7 +838,7 @@ static void tcp_tasklet_func(unsigned long data) | |||
838 | if (!sock_owned_by_user(sk)) { | 838 | if (!sock_owned_by_user(sk)) { |
839 | if ((1 << sk->sk_state) & | 839 | if ((1 << sk->sk_state) & |
840 | (TCPF_ESTABLISHED | TCPF_FIN_WAIT1 | | 840 | (TCPF_ESTABLISHED | TCPF_FIN_WAIT1 | |
841 | TCPF_CLOSING | TCPF_CLOSE_WAIT)) | 841 | TCPF_CLOSING | TCPF_CLOSE_WAIT | TCPF_LAST_ACK)) |
842 | tcp_write_xmit(sk, | 842 | tcp_write_xmit(sk, |
843 | tcp_current_mss(sk), | 843 | tcp_current_mss(sk), |
844 | 0, 0, | 844 | 0, 0, |
@@ -868,7 +868,7 @@ void tcp_release_cb(struct sock *sk) | |||
868 | if (test_and_clear_bit(TSQ_OWNED, &tp->tsq_flags)) { | 868 | if (test_and_clear_bit(TSQ_OWNED, &tp->tsq_flags)) { |
869 | if ((1 << sk->sk_state) & | 869 | if ((1 << sk->sk_state) & |
870 | (TCPF_ESTABLISHED | TCPF_FIN_WAIT1 | | 870 | (TCPF_ESTABLISHED | TCPF_FIN_WAIT1 | |
871 | TCPF_CLOSING | TCPF_CLOSE_WAIT)) | 871 | TCPF_CLOSING | TCPF_CLOSE_WAIT | TCPF_LAST_ACK)) |
872 | tcp_write_xmit(sk, | 872 | tcp_write_xmit(sk, |
873 | tcp_current_mss(sk), | 873 | tcp_current_mss(sk), |
874 | 0, 0, | 874 | 0, 0, |