[TCP]: skb pcount with MTU discovery
[sfrench/cifs-2.6.git] / include / net / tcp.h
index 503810a70e21e45832ecfdceb87f28e6838b59a5..9355ae5b1d75b1720d4957725d42a22774679a67 100644 (file)
@@ -1417,19 +1417,20 @@ tcp_nagle_check(const struct tcp_sock *tp, const struct sk_buff *skb,
                  tcp_minshall_check(tp))));
 }
 
-extern void tcp_set_skb_tso_segs(struct sk_buff *, unsigned int);
+extern void tcp_set_skb_tso_segs(struct sock *, struct sk_buff *);
 
 /* This checks if the data bearing packet SKB (usually sk->sk_send_head)
  * should be put on the wire right now.
  */
-static __inline__ int tcp_snd_test(const struct tcp_sock *tp, 
+static __inline__ int tcp_snd_test(struct sock *sk,
                                   struct sk_buff *skb,
                                   unsigned cur_mss, int nonagle)
 {
+       struct tcp_sock *tp = tcp_sk(sk);
        int pkts = tcp_skb_pcount(skb);
 
        if (!pkts) {
-               tcp_set_skb_tso_segs(skb, tp->mss_cache_std);
+               tcp_set_skb_tso_segs(sk, skb);
                pkts = tcp_skb_pcount(skb);
        }
 
@@ -1490,7 +1491,7 @@ static __inline__ void __tcp_push_pending_frames(struct sock *sk,
        if (skb) {
                if (!tcp_skb_is_last(sk, skb))
                        nonagle = TCP_NAGLE_PUSH;
-               if (!tcp_snd_test(tp, skb, cur_mss, nonagle) ||
+               if (!tcp_snd_test(sk, skb, cur_mss, nonagle) ||
                    tcp_write_xmit(sk, nonagle))
                        tcp_check_probe_timer(sk, tp);
        }
@@ -1508,7 +1509,7 @@ static __inline__ int tcp_may_send_now(struct sock *sk, struct tcp_sock *tp)
        struct sk_buff *skb = sk->sk_send_head;
 
        return (skb &&
-               tcp_snd_test(tp, skb, tcp_current_mss(sk, 1),
+               tcp_snd_test(sk, skb, tcp_current_mss(sk, 1),
                             tcp_skb_is_last(sk, skb) ? TCP_NAGLE_PUSH : tp->nonagle));
 }