aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorEric Dumazet <edumazet@google.com>2012-07-12 18:46:09 -0400
committerDavid S. Miller <davem@davemloft.net>2012-07-13 08:48:36 -0400
commitd01cb20711e3c2df41677ee270d6bdeff24e9902 (patch)
treec2334bdf33a634fc81648338d00623e3ab8f8874 /net/ipv4/tcp_output.c
parent02eca3f5f5e458c3a5d7b772bc8042ee2a4ebedf (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.c4
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,