Without FRTO, the tcp_try_to_open is never called with lost_out > 0 (see tcp_time_to_recover). However, when FRTO is enabled, the !tp->lost condition is not used until end of FRTO because that way TCP avoids premature entry to fast recovery during FRTO.
Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]> --- This case was found during left_out drop audit (only relevant to net-2.6 since tcp-2.6 does a right thing after left_out drop). diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 74683d8..ed4a1bd 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -2037,7 +2037,7 @@ static void tcp_try_to_open(struct sock *sk, int flag) { struct tcp_sock *tp = tcp_sk(sk); - tp->left_out = tp->sacked_out; + tcp_sync_left_out(tp); if (tp->retrans_out == 0) tp->retrans_stamp = 0; -- 1.5.0.6