svc_recvfrom(): switch to sock_recvmsg()
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 1 Jul 2017 21:01:59 +0000 (17:01 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Dec 2017 01:37:40 +0000 (20:37 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
net/sunrpc/svcsock.c

index ff8e06cd067e975eb87b55a5ff2485fd90299a0a..5570719e47871480481c0b377232b6b9761fcc06 100644 (file)
@@ -338,8 +338,8 @@ static int svc_recvfrom(struct svc_rqst *rqstp, struct kvec *iov, int nr,
        rqstp->rq_xprt_hlen = 0;
 
        clear_bit(XPT_DATA, &svsk->sk_xprt.xpt_flags);
-       len = kernel_recvmsg(svsk->sk_sock, &msg, iov, nr, buflen,
-                               msg.msg_flags);
+       iov_iter_kvec(&msg.msg_iter, READ | ITER_KVEC, iov, nr, buflen);
+       len = sock_recvmsg(svsk->sk_sock, &msg, msg.msg_flags);
        /* If we read a full record, then assume there may be more
         * data to read (stream based sockets only!)
         */