* [PATCH net-next] socket: use iov_length()
@ 2015-01-14 10:07 Nicolas Dichtel
2015-01-14 21:45 ` David Miller
2015-01-15 21:45 ` [PATCH net-next] " Al Viro
0 siblings, 2 replies; 8+ messages in thread
From: Nicolas Dichtel @ 2015-01-14 10:07 UTC (permalink / raw)
To: netdev; +Cc: davem, Nicolas Dichtel
Better to use available helpers.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
net/socket.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index a2c33a4dc7ba..b1f3fa4da020 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -883,10 +883,8 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
{
struct socket *sock = file->private_data;
size_t size = 0;
- int i;
- for (i = 0; i < nr_segs; i++)
- size += iov[i].iov_len;
+ size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
@@ -922,10 +920,8 @@ static ssize_t do_sock_write(struct msghdr *msg, struct kiocb *iocb,
{
struct socket *sock = file->private_data;
size_t size = 0;
- int i;
- for (i = 0; i < nr_segs; i++)
- size += iov[i].iov_len;
+ size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
--
2.1.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] socket: use iov_length()
2015-01-14 10:07 [PATCH net-next] socket: use iov_length() Nicolas Dichtel
@ 2015-01-14 21:45 ` David Miller
2015-01-15 9:35 ` [PATCH net-next v2] " Nicolas Dichtel
2015-01-15 21:45 ` [PATCH net-next] " Al Viro
1 sibling, 1 reply; 8+ messages in thread
From: David Miller @ 2015-01-14 21:45 UTC (permalink / raw)
To: nicolas.dichtel; +Cc: netdev
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Wed, 14 Jan 2015 11:07:50 +0100
> @@ -883,10 +883,8 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
> {
> struct socket *sock = file->private_data;
> size_t size = 0;
> - int i;
>
> - for (i = 0; i < nr_segs; i++)
> - size += iov[i].iov_len;
> + size = iov_length(iov, nr_segs);
In both of these cases you can now remove the initialization of size to '0'.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next v2] socket: use iov_length()
2015-01-14 21:45 ` David Miller
@ 2015-01-15 9:35 ` Nicolas Dichtel
2015-01-15 18:57 ` David Miller
0 siblings, 1 reply; 8+ messages in thread
From: Nicolas Dichtel @ 2015-01-15 9:35 UTC (permalink / raw)
To: netdev; +Cc: davem, Nicolas Dichtel
Better to use available helpers.
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
v2: initialize size variable with iov_length() result
net/socket.c | 12 ++----------
1 file changed, 2 insertions(+), 10 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index a2c33a4dc7ba..e1278d7e1d5d 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -882,11 +882,7 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
unsigned long nr_segs)
{
struct socket *sock = file->private_data;
- size_t size = 0;
- int i;
-
- for (i = 0; i < nr_segs; i++)
- size += iov[i].iov_len;
+ size_t size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
@@ -921,11 +917,7 @@ static ssize_t do_sock_write(struct msghdr *msg, struct kiocb *iocb,
unsigned long nr_segs)
{
struct socket *sock = file->private_data;
- size_t size = 0;
- int i;
-
- for (i = 0; i < nr_segs; i++)
- size += iov[i].iov_len;
+ size_t size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
--
2.1.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next v2] socket: use iov_length()
2015-01-15 9:35 ` [PATCH net-next v2] " Nicolas Dichtel
@ 2015-01-15 18:57 ` David Miller
0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2015-01-15 18:57 UTC (permalink / raw)
To: nicolas.dichtel; +Cc: netdev
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Thu, 15 Jan 2015 10:35:58 +0100
> Better to use available helpers.
>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Applied.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] socket: use iov_length()
2015-01-14 10:07 [PATCH net-next] socket: use iov_length() Nicolas Dichtel
2015-01-14 21:45 ` David Miller
@ 2015-01-15 21:45 ` Al Viro
2015-01-16 13:31 ` Nicolas Dichtel
2015-01-16 13:35 ` [PATCH net-next] socket: use ki_nbytes instead of iov_length() Nicolas Dichtel
1 sibling, 2 replies; 8+ messages in thread
From: Al Viro @ 2015-01-15 21:45 UTC (permalink / raw)
To: Nicolas Dichtel; +Cc: netdev, davem
On Wed, Jan 14, 2015 at 11:07:50AM +0100, Nicolas Dichtel wrote:
> Better to use available helpers.
>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> ---
> net/socket.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/net/socket.c b/net/socket.c
> index a2c33a4dc7ba..b1f3fa4da020 100644
> --- a/net/socket.c
> +++ b/net/socket.c
> @@ -883,10 +883,8 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
> {
> struct socket *sock = file->private_data;
> size_t size = 0;
> - int i;
>
> - for (i = 0; i < nr_segs; i++)
> - size += iov[i].iov_len;
> + size = iov_length(iov, nr_segs);
What's wrong with size = iocb->ki_nbytes instead of calling anything?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] socket: use iov_length()
2015-01-15 21:45 ` [PATCH net-next] " Al Viro
@ 2015-01-16 13:31 ` Nicolas Dichtel
2015-01-16 13:35 ` [PATCH net-next] socket: use ki_nbytes instead of iov_length() Nicolas Dichtel
1 sibling, 0 replies; 8+ messages in thread
From: Nicolas Dichtel @ 2015-01-16 13:31 UTC (permalink / raw)
To: Al Viro; +Cc: netdev, davem
Le 15/01/2015 22:45, Al Viro a écrit :
> On Wed, Jan 14, 2015 at 11:07:50AM +0100, Nicolas Dichtel wrote:
>> Better to use available helpers.
>>
>> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
>> ---
>> net/socket.c | 8 ++------
>> 1 file changed, 2 insertions(+), 6 deletions(-)
>>
>> diff --git a/net/socket.c b/net/socket.c
>> index a2c33a4dc7ba..b1f3fa4da020 100644
>> --- a/net/socket.c
>> +++ b/net/socket.c
>> @@ -883,10 +883,8 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
>> {
>> struct socket *sock = file->private_data;
>> size_t size = 0;
>> - int i;
>>
>> - for (i = 0; i < nr_segs; i++)
>> - size += iov[i].iov_len;
>> + size = iov_length(iov, nr_segs);
>
> What's wrong with size = iocb->ki_nbytes instead of calling anything?
>
I'm not an expert, but it seems you're right. I will send a patch.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH net-next] socket: use ki_nbytes instead of iov_length()
2015-01-15 21:45 ` [PATCH net-next] " Al Viro
2015-01-16 13:31 ` Nicolas Dichtel
@ 2015-01-16 13:35 ` Nicolas Dichtel
2015-01-18 4:58 ` David Miller
1 sibling, 1 reply; 8+ messages in thread
From: Nicolas Dichtel @ 2015-01-16 13:35 UTC (permalink / raw)
To: viro; +Cc: netdev, davem, Nicolas Dichtel
This field already contains the length of the iovec, no need to calculate it
again.
Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
---
net/socket.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/net/socket.c b/net/socket.c
index e1278d7e1d5d..9fcf15b61009 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -882,16 +882,15 @@ static ssize_t do_sock_read(struct msghdr *msg, struct kiocb *iocb,
unsigned long nr_segs)
{
struct socket *sock = file->private_data;
- size_t size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
msg->msg_control = NULL;
msg->msg_controllen = 0;
- iov_iter_init(&msg->msg_iter, READ, iov, nr_segs, size);
+ iov_iter_init(&msg->msg_iter, READ, iov, nr_segs, iocb->ki_nbytes);
msg->msg_flags = (file->f_flags & O_NONBLOCK) ? MSG_DONTWAIT : 0;
- return __sock_recvmsg(iocb, sock, msg, size, msg->msg_flags);
+ return __sock_recvmsg(iocb, sock, msg, iocb->ki_nbytes, msg->msg_flags);
}
static ssize_t sock_aio_read(struct kiocb *iocb, const struct iovec *iov,
@@ -917,18 +916,17 @@ static ssize_t do_sock_write(struct msghdr *msg, struct kiocb *iocb,
unsigned long nr_segs)
{
struct socket *sock = file->private_data;
- size_t size = iov_length(iov, nr_segs);
msg->msg_name = NULL;
msg->msg_namelen = 0;
msg->msg_control = NULL;
msg->msg_controllen = 0;
- iov_iter_init(&msg->msg_iter, WRITE, iov, nr_segs, size);
+ iov_iter_init(&msg->msg_iter, WRITE, iov, nr_segs, iocb->ki_nbytes);
msg->msg_flags = (file->f_flags & O_NONBLOCK) ? MSG_DONTWAIT : 0;
if (sock->type == SOCK_SEQPACKET)
msg->msg_flags |= MSG_EOR;
- return __sock_sendmsg(iocb, sock, msg, size);
+ return __sock_sendmsg(iocb, sock, msg, iocb->ki_nbytes);
}
static ssize_t sock_aio_write(struct kiocb *iocb, const struct iovec *iov,
--
2.2.2
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH net-next] socket: use ki_nbytes instead of iov_length()
2015-01-16 13:35 ` [PATCH net-next] socket: use ki_nbytes instead of iov_length() Nicolas Dichtel
@ 2015-01-18 4:58 ` David Miller
0 siblings, 0 replies; 8+ messages in thread
From: David Miller @ 2015-01-18 4:58 UTC (permalink / raw)
To: nicolas.dichtel; +Cc: viro, netdev
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Date: Fri, 16 Jan 2015 14:35:09 +0100
> This field already contains the length of the iovec, no need to calculate it
> again.
>
> Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
> Signed-off-by: Nicolas Dichtel <nicolas.dichtel@6wind.com>
Applied.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-01-18 4:59 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-14 10:07 [PATCH net-next] socket: use iov_length() Nicolas Dichtel
2015-01-14 21:45 ` David Miller
2015-01-15 9:35 ` [PATCH net-next v2] " Nicolas Dichtel
2015-01-15 18:57 ` David Miller
2015-01-15 21:45 ` [PATCH net-next] " Al Viro
2015-01-16 13:31 ` Nicolas Dichtel
2015-01-16 13:35 ` [PATCH net-next] socket: use ki_nbytes instead of iov_length() Nicolas Dichtel
2015-01-18 4:58 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).