* [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).