diff options
author | Alexander Viro <viro@www.linux.org.uk> | 2004-07-15 22:04:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-07-15 22:04:47 -0700 |
commit | 1a7d7787922f184804ef98e45c8606f8f16daf43 (patch) | |
tree | b2dd773874e2aaff421154f9cad6bf71134062f1 /fs | |
parent | e9b59558d130f0c432cc8456c992a15258729b22 (diff) | |
download | history-1a7d7787922f184804ef98e45c8606f8f16daf43.tar.gz |
[PATCH] sparse: iovec cleanups - cifs
cifs switched to kvec and kernel_...msg()
Diffstat (limited to 'fs')
-rw-r--r-- | fs/cifs/connect.c | 35 | ||||
-rw-r--r-- | fs/cifs/transport.c | 10 |
2 files changed, 19 insertions, 26 deletions
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 0e59f79b43a13d..5c84f9b869933c 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -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); diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c index f3824d5df01a81..cdc7ed3424c772 100644 --- a/fs/cifs/transport.c +++ b/fs/cifs/transport.c @@ -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)); |