mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
lustre: switch lnet_sock_write() to sock_sendmsg()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
2afad7fc9f
commit
fd25dc3460
1 changed files with 7 additions and 14 deletions
|
|
@ -265,21 +265,17 @@ lnet_sock_write(struct socket *sock, void *buffer, int nob, int timeout)
|
|||
long jiffies_left = timeout * msecs_to_jiffies(MSEC_PER_SEC);
|
||||
unsigned long then;
|
||||
struct timeval tv;
|
||||
struct kvec iov = { .iov_base = buffer, .iov_len = nob };
|
||||
struct msghdr msg = {NULL,};
|
||||
|
||||
LASSERT(nob > 0);
|
||||
/*
|
||||
* Caller may pass a zero timeout if she thinks the socket buffer is
|
||||
* empty enough to take the whole message immediately
|
||||
*/
|
||||
iov_iter_kvec(&msg.msg_iter, WRITE | ITER_KVEC, &iov, 1, nob);
|
||||
for (;;) {
|
||||
struct kvec iov = {
|
||||
.iov_base = buffer,
|
||||
.iov_len = nob
|
||||
};
|
||||
struct msghdr msg = {
|
||||
.msg_flags = !timeout ? MSG_DONTWAIT : 0
|
||||
};
|
||||
|
||||
msg.msg_flags = !timeout ? MSG_DONTWAIT : 0;
|
||||
if (timeout) {
|
||||
/* Set send timeout to remaining time */
|
||||
jiffies_to_timeval(jiffies_left, &tv);
|
||||
|
|
@ -296,9 +292,6 @@ lnet_sock_write(struct socket *sock, void *buffer, int nob, int timeout)
|
|||
rc = kernel_sendmsg(sock, &msg, &iov, 1, nob);
|
||||
jiffies_left -= jiffies - then;
|
||||
|
||||
if (rc == nob)
|
||||
return 0;
|
||||
|
||||
if (rc < 0)
|
||||
return rc;
|
||||
|
||||
|
|
@ -307,11 +300,11 @@ lnet_sock_write(struct socket *sock, void *buffer, int nob, int timeout)
|
|||
return -ECONNABORTED;
|
||||
}
|
||||
|
||||
if (!msg_data_left(&msg))
|
||||
break;
|
||||
|
||||
if (jiffies_left <= 0)
|
||||
return -EAGAIN;
|
||||
|
||||
buffer = ((char *)buffer) + rc;
|
||||
nob -= rc;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue