aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlpo Järvinen <ilpo.jarvinen@helsinki.fi>2007-07-07 06:39:02 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-10-10 19:47:58 -0400
commitd02596e32925edaeccee0af8eb6c229b5615de42 (patch)
treea15271083fa0b8d8da21297cfa1fc02089c62070
parent86426c22d24e0c904012711a14cb5021f4a167dc (diff)
[TCP]: Keep state in Disorder also if only lost_out > 0
This happens rather infrequently and is only possible during FRTO. We must not allow TCP to slip to Open state because tcp_fastretrans_alert might then not be called on it's time when FRTO has exited. This become a problem when left_out got removed and was replaced by just sacked_out. Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/ipv4/tcp_input.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 93823b83522b..bf4fc3516fb9 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -2134,7 +2134,7 @@ static void tcp_try_to_open(struct sock *sk, int flag)
2134 if (inet_csk(sk)->icsk_ca_state != TCP_CA_CWR) { 2134 if (inet_csk(sk)->icsk_ca_state != TCP_CA_CWR) {
2135 int state = TCP_CA_Open; 2135 int state = TCP_CA_Open;
2136 2136
2137 if (tp->sacked_out || tp->retrans_out || tp->undo_marker) 2137 if (tcp_left_out(tp) || tp->retrans_out || tp->undo_marker)
2138 state = TCP_CA_Disorder; 2138 state = TCP_CA_Disorder;
2139 2139
2140 if (inet_csk(sk)->icsk_ca_state != state) { 2140 if (inet_csk(sk)->icsk_ca_state != state) {