]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/tcp.c
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[net-next-2.6.git] / net / ipv4 / tcp.c
index b8601b7683a614692863ba5673e043d13273be3c..86b9f67abede2cbaa262865585d752fc9303013c 100644 (file)
@@ -608,6 +608,7 @@ ssize_t tcp_splice_read(struct socket *sock, loff_t *ppos,
        ssize_t spliced;
        int ret;
 
+       sock_rps_record_flow(sk);
        /*
         * We can't seek on a socket input
         */
@@ -857,15 +858,15 @@ out_err:
        return sk_stream_error(sk, flags, err);
 }
 
-ssize_t tcp_sendpage(struct socket *sock, struct page *page, int offset,
-                    size_t size, int flags)
+int tcp_sendpage(struct sock *sk, struct page *page, int offset,
+                size_t size, int flags)
 {
        ssize_t res;
-       struct sock *sk = sock->sk;
 
        if (!(sk->sk_route_caps & NETIF_F_SG) ||
            !(sk->sk_route_caps & NETIF_F_ALL_CSUM))
-               return sock_no_sendpage(sock, page, offset, size, flags);
+               return sock_no_sendpage(sk->sk_socket, page, offset, size,
+                                       flags);
 
        lock_sock(sk);
        TCP_CHECK_TIMER(sk);
@@ -899,10 +900,9 @@ static inline int select_size(struct sock *sk, int sg)
        return tmp;
 }
 
-int tcp_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
+int tcp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                size_t size)
 {
-       struct sock *sk = sock->sk;
        struct iovec *iov;
        struct tcp_sock *tp = tcp_sk(sk);
        struct sk_buff *skb;