aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorAlexander Viro <viro@www.linux.org.uk>2004-07-15 22:04:47 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-07-15 22:04:47 -0700
commit1a7d7787922f184804ef98e45c8606f8f16daf43 (patch)
treeb2dd773874e2aaff421154f9cad6bf71134062f1 /fs
parente9b59558d130f0c432cc8456c992a15258729b22 (diff)
downloadhistory-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.c35
-rw-r--r--fs/cifs/transport.c10
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));