Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx
[linux-2.6.git] / net / ipv4 / tcp.c
index 9b275ab..ce572f9 100644 (file)
@@ -580,10 +580,6 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos,
                else if (!ret) {
                        if (spliced)
                                break;
-                       if (flags & SPLICE_F_NONBLOCK) {
-                               ret = -EAGAIN;
-                               break;
-                       }
                        if (sock_flag(sk, SOCK_DONE))
                                break;
                        if (sk->sk_err) {
@@ -2518,9 +2514,7 @@ found:
        flush |= memcmp(th + 1, th2 + 1, thlen - sizeof(*th));
 
        total = p->len;
-       mss = total;
-       if (skb_shinfo(p)->frag_list)
-               mss = skb_shinfo(p)->frag_list->len;
+       mss = skb_shinfo(p)->gso_size;
 
        flush |= skb->len > mss || skb->len <= 0;
        flush |= ntohl(th2->seq) + total != ntohl(th->seq);
@@ -2547,6 +2541,7 @@ out:
 
        return pp;
 }
+EXPORT_SYMBOL(tcp_gro_receive);
 
 int tcp_gro_complete(struct sk_buff *skb)
 {
@@ -2556,7 +2551,6 @@ int tcp_gro_complete(struct sk_buff *skb)
        skb->csum_offset = offsetof(struct tcphdr, check);
        skb->ip_summed = CHECKSUM_PARTIAL;
 
-       skb_shinfo(skb)->gso_size = skb_shinfo(skb)->frag_list->len;
        skb_shinfo(skb)->gso_segs = NAPI_GRO_CB(skb)->count;
 
        if (th->cwr)
@@ -2564,6 +2558,7 @@ int tcp_gro_complete(struct sk_buff *skb)
 
        return 0;
 }
+EXPORT_SYMBOL(tcp_gro_complete);
 
 #ifdef CONFIG_TCP_MD5SIG
 static unsigned long tcp_md5sig_users;