int flags);
 int tcp_sendpage_locked(struct sock *sk, struct page *page, int offset,
                        size_t size, int flags);
-ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset,
-                size_t size, int flags);
 int tcp_send_mss(struct sock *sk, int *size_goal, int flags);
 void tcp_push(struct sock *sk, int flags, int mss_now, int nonagle,
              int size_goal);
 
        return min(copy, sk->sk_forward_alloc);
 }
 
-ssize_t do_tcp_sendpages(struct sock *sk, struct page *page, int offset,
-                        size_t size, int flags)
+int tcp_sendpage_locked(struct sock *sk, struct page *page, int offset,
+                       size_t size, int flags)
 {
        struct bio_vec bvec;
        struct msghdr msg = { .msg_flags = flags | MSG_SPLICE_PAGES, };
 
+       if (!(sk->sk_route_caps & NETIF_F_SG))
+               return sock_no_sendpage_locked(sk, page, offset, size, flags);
+
+       tcp_rate_check_app_limited(sk);  /* is sending application-limited? */
+
        bvec_set_page(&bvec, page, size, offset);
        iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, &bvec, 1, size);
 
 
        return tcp_sendmsg_locked(sk, &msg, size);
 }
-EXPORT_SYMBOL_GPL(do_tcp_sendpages);
-
-int tcp_sendpage_locked(struct sock *sk, struct page *page, int offset,
-                       size_t size, int flags)
-{
-       if (!(sk->sk_route_caps & NETIF_F_SG))
-               return sock_no_sendpage_locked(sk, page, offset, size, flags);
-
-       tcp_rate_check_app_limited(sk);  /* is sending application-limited? */
-
-       return do_tcp_sendpages(sk, page, offset, size, flags);
-}
 EXPORT_SYMBOL_GPL(tcp_sendpage_locked);
 
 int tcp_sendpage(struct sock *sk, struct page *page, int offset,