]> git.hungrycats.org Git - linux/commitdiff
[PATCH] sparse: iovec cleanups - cifs
authorAlexander Viro <viro@www.linux.org.uk>
Fri, 16 Jul 2004 05:04:47 +0000 (22:04 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 16 Jul 2004 05:04:47 +0000 (22:04 -0700)
cifs switched to kvec and kernel_...msg()

fs/cifs/connect.c
fs/cifs/transport.c

index 0e59f79b43a13d205dbf81ba433dfc3713cf3512..5c84f9b869933c275b7ea9118fde156c9ea32029 100644 (file)
@@ -189,8 +189,7 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
        unsigned int pdu_length, total_read;
        struct smb_hdr *smb_buffer = NULL;
        struct msghdr smb_msg;
-       mm_segment_t temp_fs;
-       struct iovec iov;
+       struct kvec iov;
        struct socket *csocket = server->ssocket;
        struct list_head *tmp;
        struct cifsSesInfo *ses;
@@ -204,9 +203,6 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
        server->tsk = current;  /* save process info to wake at shutdown */
        cFYI(1, ("Demultiplex PID: %d", current->pid));
 
-       temp_fs = get_fs();     /* we must turn off socket api parm checking */
-       set_fs(get_ds());
-
        while (server->tcpStatus != CifsExiting) {
                if (smb_buffer == NULL)
                        smb_buffer = cifs_buf_get();
@@ -222,16 +218,15 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
                iov.iov_base = smb_buffer;
                iov.iov_len = sizeof (struct smb_hdr) - 1;      
         /* 1 byte less above since wct is not always returned in error cases */
-               smb_msg.msg_iov = &iov;
-               smb_msg.msg_iovlen = 1;
                smb_msg.msg_control = NULL;
                smb_msg.msg_controllen = 0;
 
                length =
-                   sock_recvmsg(csocket, &smb_msg,
-                                sizeof (struct smb_hdr) -
-                                1 /* RFC1001 header and SMB header */ ,
-                                MSG_PEEK /* flags see socket.h */ );
+                   kernel_recvmsg(csocket, &smb_msg,
+                                  &iov, 1,
+                                  sizeof (struct smb_hdr) -
+                                  1 /* RFC1001 header and SMB header */ ,
+                                  MSG_PEEK /* flags see socket.h */ );
 
                if(server->tcpStatus == CifsExiting) {
                        break;
@@ -276,12 +271,14 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
                        if (temp[0] == (char) RFC1002_SESSION_KEEP_ALIVE) {
                                iov.iov_base = smb_buffer;
                                iov.iov_len = 4;
-                               length = sock_recvmsg(csocket, &smb_msg, 4, 0);
+                               length = kernel_recvmsg(csocket, &smb_msg,
+                                                       &iov, 1, 4, 0);
                                cFYI(0,("Received 4 byte keep alive packet"));
                        } else if (temp[0] == (char) RFC1002_POSITIVE_SESSION_RESPONSE) {
-                                       iov.iov_base = smb_buffer;
-                                       iov.iov_len = 4;
-                                       length = sock_recvmsg(csocket, &smb_msg, 4, 0);
+                               iov.iov_base = smb_buffer;
+                               iov.iov_len = 4;
+                               length = kernel_recvmsg(csocket, &smb_msg,
+                                                       &iov, 1, 4, 0);
                                        cFYI(1,("Good RFC 1002 session rsp"));
                        } else if ((temp[0] == (char)RFC1002_NEGATIVE_SESSION_RESPONSE)
                                   && (length == 5)) {
@@ -341,7 +338,8 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
                                        for (total_read = 0; 
                                             total_read < pdu_length;
                                             total_read += length) {    
-                                               length = sock_recvmsg(csocket, &smb_msg, 
+                                               length = kernel_recvmsg(csocket, &smb_msg, 
+                                                       &iov, 1,
                                                        pdu_length - total_read, 0);
                                                if (length == 0) {
                                                        cERROR(1,
@@ -392,7 +390,9 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
                             ("Frame less than four bytes received  %d bytes long.",
                              length));
                        if (length > 0) {
-                               length = sock_recvmsg(csocket, &smb_msg, length, 0);    /* throw away junk frame */
+                               length = kernel_recvmsg(csocket, &smb_msg,
+                                       &iov, 1,
+                                       length, 0);     /* throw away junk frame */
                                cFYI(1,
                                     (" with junk  0x%x in it ",
                                      *(__u32 *) smb_buffer));
@@ -418,7 +418,6 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server)
                sock_release(csocket);
                server->ssocket = NULL;
        }
-       set_fs(temp_fs);
        if (smb_buffer) /* buffer usually freed in free_mid - need to free it on error or exit */
                cifs_buf_release(smb_buffer);
 
index f3824d5df01a8197f64c62812d2629ac9bddd42a..cdc7ed3424c772d1780cc079c01f98f710ae2d7a 100644 (file)
@@ -122,8 +122,7 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
        int rc = 0;
        int i = 0;
        struct msghdr smb_msg;
-       struct iovec iov;
-       mm_segment_t temp_fs;
+       struct kvec iov;
 
        if(ssocket == NULL)
                return -ENOTSOCK; /* BB eventually add reconnect code here */
@@ -132,8 +131,6 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
 
        smb_msg.msg_name = sin;
        smb_msg.msg_namelen = sizeof (struct sockaddr);
-       smb_msg.msg_iov = &iov;
-       smb_msg.msg_iovlen = 1;
        smb_msg.msg_control = NULL;
        smb_msg.msg_controllen = 0;
        smb_msg.msg_flags = MSG_DONTWAIT + MSG_NOSIGNAL; /* BB add more flags?*/
@@ -147,10 +144,8 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
        cFYI(1, ("Sending smb of length %d ", smb_buf_length));
        dump_smb(smb_buffer, smb_buf_length + 4);
 
-       temp_fs = get_fs();     /* we must turn off socket api parm checking */
-       set_fs(get_ds());
        while(iov.iov_len > 0) {
-               rc = sock_sendmsg(ssocket, &smb_msg, smb_buf_length + 4);
+               rc = kernel_sendmsg(ssocket, &smb_msg, &iov, 1, smb_buf_length + 4);
                if ((rc == -ENOSPC) || (rc == -EAGAIN)) {
                        i++;
                        if(i > 60) {
@@ -169,7 +164,6 @@ smb_send(struct socket *ssocket, struct smb_hdr *smb_buffer,
                iov.iov_base += rc;
                iov.iov_len -= rc;
        }
-       set_fs(temp_fs);
 
        if (rc < 0) {
                cERROR(1,("Error %d sending data on socket to server.", rc));