netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).