diff options
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r-- | net/ipv4/tcp_output.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c index 8f83ab432705..edef2afe905e 100644 --- a/net/ipv4/tcp_output.c +++ b/net/ipv4/tcp_output.c | |||
@@ -1985,14 +1985,17 @@ void tcp_xmit_retransmit_queue(struct sock *sk) | |||
1985 | 1985 | ||
1986 | if (sacked & TCPCB_LOST) { | 1986 | if (sacked & TCPCB_LOST) { |
1987 | if (!(sacked & (TCPCB_SACKED_ACKED|TCPCB_SACKED_RETRANS))) { | 1987 | if (!(sacked & (TCPCB_SACKED_ACKED|TCPCB_SACKED_RETRANS))) { |
1988 | int mib_idx; | ||
1989 | |||
1988 | if (tcp_retransmit_skb(sk, skb)) { | 1990 | if (tcp_retransmit_skb(sk, skb)) { |
1989 | tp->retransmit_skb_hint = NULL; | 1991 | tp->retransmit_skb_hint = NULL; |
1990 | return; | 1992 | return; |
1991 | } | 1993 | } |
1992 | if (icsk->icsk_ca_state != TCP_CA_Loss) | 1994 | if (icsk->icsk_ca_state != TCP_CA_Loss) |
1993 | NET_INC_STATS_BH(LINUX_MIB_TCPFASTRETRANS); | 1995 | mib_idx = LINUX_MIB_TCPFASTRETRANS; |
1994 | else | 1996 | else |
1995 | NET_INC_STATS_BH(LINUX_MIB_TCPSLOWSTARTRETRANS); | 1997 | mib_idx = LINUX_MIB_TCPSLOWSTARTRETRANS; |
1998 | NET_INC_STATS_BH(mib_idx); | ||
1996 | 1999 | ||
1997 | if (skb == tcp_write_queue_head(sk)) | 2000 | if (skb == tcp_write_queue_head(sk)) |
1998 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, | 2001 | inet_csk_reset_xmit_timer(sk, ICSK_TIME_RETRANS, |