|
@@ -1932,26 +1932,26 @@ static inline void tcp_mtu_check_reprobe(struct sock *sk)
|
|
*/
|
|
*/
|
|
static int tcp_mtu_probe(struct sock *sk)
|
|
static int tcp_mtu_probe(struct sock *sk)
|
|
{
|
|
{
|
|
- struct tcp_sock *tp = tcp_sk(sk);
|
|
|
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
|
|
|
+ struct tcp_sock *tp = tcp_sk(sk);
|
|
struct sk_buff *skb, *nskb, *next;
|
|
struct sk_buff *skb, *nskb, *next;
|
|
struct net *net = sock_net(sk);
|
|
struct net *net = sock_net(sk);
|
|
- int len;
|
|
|
|
int probe_size;
|
|
int probe_size;
|
|
int size_needed;
|
|
int size_needed;
|
|
- int copy;
|
|
|
|
|
|
+ int copy, len;
|
|
int mss_now;
|
|
int mss_now;
|
|
int interval;
|
|
int interval;
|
|
|
|
|
|
/* Not currently probing/verifying,
|
|
/* Not currently probing/verifying,
|
|
* not in recovery,
|
|
* not in recovery,
|
|
* have enough cwnd, and
|
|
* have enough cwnd, and
|
|
- * not SACKing (the variable headers throw things off) */
|
|
|
|
- if (!icsk->icsk_mtup.enabled ||
|
|
|
|
- icsk->icsk_mtup.probe_size ||
|
|
|
|
- inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
|
|
|
|
- tp->snd_cwnd < 11 ||
|
|
|
|
- tp->rx_opt.num_sacks || tp->rx_opt.dsack)
|
|
|
|
|
|
+ * not SACKing (the variable headers throw things off)
|
|
|
|
+ */
|
|
|
|
+ if (likely(!icsk->icsk_mtup.enabled ||
|
|
|
|
+ icsk->icsk_mtup.probe_size ||
|
|
|
|
+ inet_csk(sk)->icsk_ca_state != TCP_CA_Open ||
|
|
|
|
+ tp->snd_cwnd < 11 ||
|
|
|
|
+ tp->rx_opt.num_sacks || tp->rx_opt.dsack))
|
|
return -1;
|
|
return -1;
|
|
|
|
|
|
/* Use binary search for probe_size between tcp_mss_base,
|
|
/* Use binary search for probe_size between tcp_mss_base,
|