VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / net / rxrpc / connection.c
index a923806..929b82f 100644 (file)
@@ -518,7 +518,7 @@ int rxrpc_conn_newmsg(struct rxrpc_connection *conn,
                      struct rxrpc_call *call,
                      uint8_t type,
                      int dcount,
-                     struct iovec diov[],
+                     struct kvec diov[],
                      int alloc_flags,
                      struct rxrpc_message **_msg)
 {
@@ -620,7 +620,6 @@ int rxrpc_conn_sendmsg(struct rxrpc_connection *conn,
                       struct rxrpc_message *msg)
 {
        struct msghdr msghdr;
-       mm_segment_t oldfs;
        int ret;
 
        _enter("%p{%d}", conn, ntohs(conn->addr.sin_port));
@@ -634,8 +633,6 @@ int rxrpc_conn_sendmsg(struct rxrpc_connection *conn,
        /* set up the message to be transmitted */
        msghdr.msg_name         = &conn->addr;
        msghdr.msg_namelen      = sizeof(conn->addr);
-       msghdr.msg_iov          = msg->data;
-       msghdr.msg_iovlen       = msg->dcount;
        msghdr.msg_control      = NULL;
        msghdr.msg_controllen   = 0;
        msghdr.msg_flags        = MSG_CONFIRM | MSG_DONTWAIT;
@@ -647,15 +644,11 @@ int rxrpc_conn_sendmsg(struct rxrpc_connection *conn,
             htons(conn->addr.sin_port));
 
        /* send the message */
-       oldfs = get_fs();
-       set_fs(KERNEL_DS);
-       ret = sock_sendmsg(conn->trans->socket, &msghdr, msg->dsize);
-       set_fs(oldfs);
-
+       ret = kernel_sendmsg(conn->trans->socket, &msghdr,
+                            msg->data, msg->dcount, msg->dsize);
        if (ret < 0) {
                msg->state = RXRPC_MSG_ERROR;
-       }
-       else {
+       } else {
                msg->state = RXRPC_MSG_SENT;
                ret = 0;