rxrpc: make the users of rxrpc_kernel_send_data() set kvec-backed msg_iter properly
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 28 Nov 2014 02:50:31 +0000 (21:50 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 4 Feb 2015 06:34:14 +0000 (01:34 -0500)
Use iov_iter_kvec() there, get rid of set_fs() games - now that
rxrpc_send_data() uses iov_iter primitives, it'll handle ITER_KVEC just
fine.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/afs/rxrpc.c
net/rxrpc/ar-output.c

index 06e14bfb3496c9d9aab923243c104addfbff7196..dbc732e9a5c01eb18ab91af910a997881dfe5fd8 100644 (file)
@@ -306,8 +306,8 @@ static int afs_send_pages(struct afs_call *call, struct msghdr *msg,
 
                        _debug("- range %u-%u%s",
                               offset, to, msg->msg_flags ? " [more]" : "");
-                       iov_iter_init(&msg->msg_iter, WRITE,
-                                     (struct iovec *) iov, 1, to - offset);
+                       iov_iter_kvec(&msg->msg_iter, WRITE | ITER_KVEC,
+                                     iov, 1, to - offset);
 
                        /* have to change the state *before* sending the last
                         * packet as RxRPC might give us the reply before it
@@ -384,7 +384,7 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
 
        msg.msg_name            = NULL;
        msg.msg_namelen         = 0;
-       iov_iter_init(&msg.msg_iter, WRITE, (struct iovec *)iov, 1,
+       iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iov, 1,
                      call->request_size);
        msg.msg_control         = NULL;
        msg.msg_controllen      = 0;
@@ -770,7 +770,7 @@ static int afs_deliver_cm_op_id(struct afs_call *call, struct sk_buff *skb,
 void afs_send_empty_reply(struct afs_call *call)
 {
        struct msghdr msg;
-       struct iovec iov[1];
+       struct kvec iov[1];
 
        _enter("");
 
@@ -778,7 +778,7 @@ void afs_send_empty_reply(struct afs_call *call)
        iov[0].iov_len          = 0;
        msg.msg_name            = NULL;
        msg.msg_namelen         = 0;
-       iov_iter_init(&msg.msg_iter, WRITE, iov, 0, 0); /* WTF? */
+       iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iov, 0, 0);     /* WTF? */
        msg.msg_control         = NULL;
        msg.msg_controllen      = 0;
        msg.msg_flags           = 0;
@@ -805,7 +805,7 @@ void afs_send_empty_reply(struct afs_call *call)
 void afs_send_simple_reply(struct afs_call *call, const void *buf, size_t len)
 {
        struct msghdr msg;
-       struct iovec iov[1];
+       struct kvec iov[1];
        int n;
 
        _enter("");
@@ -814,7 +814,7 @@ void afs_send_simple_reply(struct afs_call *call, const void *buf, size_t len)
        iov[0].iov_len          = len;
        msg.msg_name            = NULL;
        msg.msg_namelen         = 0;
-       iov_iter_init(&msg.msg_iter, WRITE, iov, 1, len);
+       iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, iov, 1, len);
        msg.msg_control         = NULL;
        msg.msg_controllen      = 0;
        msg.msg_flags           = 0;
index 963a5b91f3e888df05aba9a75af3ad51495d5ecd..8331c95e152283d437b3dee9205cf37c9ce06271 100644 (file)
@@ -232,10 +232,7 @@ int rxrpc_kernel_send_data(struct rxrpc_call *call, struct msghdr *msg,
                   call->state != RXRPC_CALL_SERVER_SEND_REPLY) {
                ret = -EPROTO; /* request phase complete for this client call */
        } else {
-               mm_segment_t oldfs = get_fs();
-               set_fs(KERNEL_DS);
                ret = rxrpc_send_data(NULL, call->socket, call, msg, len);
-               set_fs(oldfs);
        }
 
        release_sock(&call->socket->sk);