lkml.org 
[lkml]   [2018]   [Feb]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH v2] net: make getname() functions return length rather than use int* parameter
From
From: Denys Vlasenko <dvlasenk@redhat.com>
Date: Mon, 12 Feb 2018 20:00:20 +0100

> Changes since v1:
> Added changes in these files:
> drivers/infiniband/hw/usnic/usnic_transport.c
> drivers/staging/lustre/lnet/lnet/lib-socket.c
> drivers/target/iscsi/iscsi_target_login.c
> drivers/vhost/net.c
> fs/dlm/lowcomms.c
> fs/ocfs2/cluster/tcp.c
> security/tomoyo/network.c
>
>
> Before:
> All these functions either return a negative error indicator,
> or store length of sockaddr into "int *socklen" parameter
> and return zero on success.
>
> "int *socklen" parameter is awkward. For example, if caller does not
> care, it still needs to provide on-stack storage for the value
> it does not need.
>
> None of the many FOO_getname() functions of various protocols
> ever used old value of *socklen. They always just overwrite it.
>
> This change drops this parameter, and makes all these functions, on success,
> return length of sockaddr. It's always >= 0 and can be differentiated
> from an error.
>
> Tests in callers are changed from "if (err)" to "if (err < 0)", where needed.
>
> rpc_sockname() lost "int buflen" parameter, since its only use was
> to be passed to kernel_getsockname() as &buflen and subsequently
> not used in any way.
>
> Userspace API is not changed.
>
> text data bss dec hex filename
> 30108430 2633624 873672 33615726 200ef6e vmlinux.before.o
> 30108109 2633612 873672 33615393 200ee21 vmlinux.o
>
> Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>

Applied to net-next, thanks Denys.

\
 
 \ /
  Last update: 2018-02-12 20:37    [W:0.048 / U:0.168 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site