Merge branch 'tcp-fixes-in-timeout-and-retransmission-accounting'
Yuchung Cheng says: ==================== tcp: fixes in timeout and retransmission accounting This patch set has assorted fixes of minor accounting issues in timeout, window probe, and retransmission stats. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
9b2156fab0
|
@ -2920,7 +2920,7 @@ int __tcp_retransmit_skb(struct sock *sk, struct sk_buff *skb, int segs)
|
|||
TCP_SKB_CB(skb)->sacked |= TCPCB_EVER_RETRANS;
|
||||
trace_tcp_retransmit_skb(sk, skb);
|
||||
} else if (err != -EBUSY) {
|
||||
NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPRETRANSFAIL);
|
||||
NET_ADD_STATS(sock_net(sk), LINUX_MIB_TCPRETRANSFAIL, segs);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -378,7 +378,7 @@ static void tcp_probe_timer(struct sock *sk)
|
|||
return;
|
||||
}
|
||||
|
||||
if (icsk->icsk_probes_out > max_probes) {
|
||||
if (icsk->icsk_probes_out >= max_probes) {
|
||||
abort: tcp_write_err(sk);
|
||||
} else {
|
||||
/* Only send another probe if we didn't close things up. */
|
||||
|
@ -484,11 +484,12 @@ void tcp_retransmit_timer(struct sock *sk)
|
|||
goto out_reset_timer;
|
||||
}
|
||||
|
||||
__NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPTIMEOUTS);
|
||||
if (tcp_write_timeout(sk))
|
||||
goto out;
|
||||
|
||||
if (icsk->icsk_retransmits == 0) {
|
||||
int mib_idx;
|
||||
int mib_idx = 0;
|
||||
|
||||
if (icsk->icsk_ca_state == TCP_CA_Recovery) {
|
||||
if (tcp_is_sack(tp))
|
||||
|
@ -503,10 +504,9 @@ void tcp_retransmit_timer(struct sock *sk)
|
|||
mib_idx = LINUX_MIB_TCPSACKFAILURES;
|
||||
else
|
||||
mib_idx = LINUX_MIB_TCPRENOFAILURES;
|
||||
} else {
|
||||
mib_idx = LINUX_MIB_TCPTIMEOUTS;
|
||||
}
|
||||
__NET_INC_STATS(sock_net(sk), mib_idx);
|
||||
if (mib_idx)
|
||||
__NET_INC_STATS(sock_net(sk), mib_idx);
|
||||
}
|
||||
|
||||
tcp_enter_loss(sk);
|
||||
|
|
Loading…
Reference in New Issue