<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/fs/dlm/lowcomms.c, branch v4.17-rc7</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>net: make getname() functions return length rather than use int* parameter</title>
<updated>2018-02-12T19:15:04+00:00</updated>
<author>
<name>Denys Vlasenko</name>
<email>dvlasenk@redhat.com</email>
</author>
<published>2018-02-12T19:00:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9b2c45d479d0fb8647c9e83359df69162b5fbe5f'/>
<id>9b2c45d479d0fb8647c9e83359df69162b5fbe5f</id>
<content type='text'>
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 &gt;= 0 and can be differentiated
from an error.

Tests in callers are changed from "if (err)" to "if (err &lt; 0)", where needed.

rpc_sockname() lost "int buflen" parameter, since its only use was
to be passed to kernel_getsockname() as &amp;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 &lt;dvlasenk@redhat.com&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;
CC: linux-kernel@vger.kernel.org
CC: netdev@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-decnet-user@lists.sourceforge.net
CC: linux-wireless@vger.kernel.org
CC: linux-rdma@vger.kernel.org
CC: linux-sctp@vger.kernel.org
CC: linux-nfs@vger.kernel.org
CC: linux-x25@vger.kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &gt;= 0 and can be differentiated
from an error.

Tests in callers are changed from "if (err)" to "if (err &lt; 0)", where needed.

rpc_sockname() lost "int buflen" parameter, since its only use was
to be passed to kernel_getsockname() as &amp;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 &lt;dvlasenk@redhat.com&gt;
CC: David S. Miller &lt;davem@davemloft.net&gt;
CC: linux-kernel@vger.kernel.org
CC: netdev@vger.kernel.org
CC: linux-bluetooth@vger.kernel.org
CC: linux-decnet-user@lists.sourceforge.net
CC: linux-wireless@vger.kernel.org
CC: linux-rdma@vger.kernel.org
CC: linux-sctp@vger.kernel.org
CC: linux-nfs@vger.kernel.org
CC: linux-x25@vger.kernel.org
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>dlm: switch to sock_recvmsg()</title>
<updated>2017-12-03T01:37:47+00:00</updated>
<author>
<name>Al Viro</name>
<email>viro@zeniv.linux.org.uk</email>
</author>
<published>2017-09-20T23:52:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c8c7840ea9459d602d6cb76ddcb166840fc4ba1f'/>
<id>c8c7840ea9459d602d6cb76ddcb166840fc4ba1f</id>
<content type='text'>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Al Viro &lt;viro@zeniv.linux.org.uk&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: fix NULL pointer dereference in send_to_sock()</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:02:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=26b41099e7e97d6d44769fd159e822a98c98afa2'/>
<id>26b41099e7e97d6d44769fd159e822a98c98afa2</id>
<content type='text'>
The writequeue and writequeue_lock member of othercon was not initialized.
If lowcomms_state_change() is called from network layer, othercon-&gt;swork
may be scheduled. In this case, send_to_sock() will generate a NULL pointer
reference. We avoid this problem by correctly initializing writequeue and
writequeue_lock member of othercon.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The writequeue and writequeue_lock member of othercon was not initialized.
If lowcomms_state_change() is called from network layer, othercon-&gt;swork
may be scheduled. In this case, send_to_sock() will generate a NULL pointer
reference. We avoid this problem by correctly initializing writequeue and
writequeue_lock member of othercon.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: fix to reschedule rwork</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:02:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=0aa18464c812e0154e8bafc9f60ca8002b3a8e7c'/>
<id>0aa18464c812e0154e8bafc9f60ca8002b3a8e7c</id>
<content type='text'>
When an error occurs in kernel_recvmsg or kernel_sendpage and
close_connection is called and receive work is already scheduled,
receive work is canceled. In that case, the receive work will not
be scheduled forever after reconnection, because CF_READ_PENDING
flag is established.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When an error occurs in kernel_recvmsg or kernel_sendpage and
close_connection is called and receive work is already scheduled,
receive work is canceled. In that case, the receive work will not
be scheduled forever after reconnection, because CF_READ_PENDING
flag is established.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: fix to use sk_callback_lock correctly</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:01:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=93eaadebe9e1c28528f01204cefccc7ba050c913'/>
<id>93eaadebe9e1c28528f01204cefccc7ba050c913</id>
<content type='text'>
In the current implementation, we think that exclusion control between
processing to set the callback function to the connection structure and
processing to refer to the connection structure from the callback function
was not enough. We fix them.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the current implementation, we think that exclusion control between
processing to set the callback function to the connection structure and
processing to refer to the connection structure from the callback function
was not enough. We fix them.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: fix memory leak in tcp_accept_from_sock()</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=3421fb15be01ff4714fed5a5d6db64849b59a1fd'/>
<id>3421fb15be01ff4714fed5a5d6db64849b59a1fd</id>
<content type='text'>
The sk member of the socket generated by sock_create_kern() is overwritten
by ops-&gt;accept(). So the previous sk will not be released.
We use kernel_accept() instead of sock_create_kern() and ops-&gt;accept().

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The sk member of the socket generated by sock_create_kern() is overwritten
by ops-&gt;accept(). So the previous sk will not be released.
We use kernel_accept() instead of sock_create_kern() and ops-&gt;accept().

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: use CF_CLOSE flag to stop dlm_send correctly</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:01:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=173a31fe2b23b3ccc45d0b70edb225b1d836c31d'/>
<id>173a31fe2b23b3ccc45d0b70edb225b1d836c31d</id>
<content type='text'>
If reconnection fails while executing dlm_lowcomms_stop,
dlm_send will not stop.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If reconnection fails while executing dlm_lowcomms_stop,
dlm_send will not stop.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: Reanimate CF_WRITE_PENDING flag</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T09:01:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8a4abb0819769a556f9023845d3821a06f81452d'/>
<id>8a4abb0819769a556f9023845d3821a06f81452d</id>
<content type='text'>
CF_WRITE_PENDING flag has been reanimated to make dlm_send stop properly
when running dlm_lowcomms_stop.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CF_WRITE_PENDING flag has been reanimated to make dlm_send stop properly
when running dlm_lowcomms_stop.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: close othercon at send/receive error</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T08:56:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c553e173b022347dcb34721688f55167c654466d'/>
<id>c553e173b022347dcb34721688f55167c654466d</id>
<content type='text'>
If an error occurs in the sending / receiving process, if othercon
exists, sending / receiving processing using othercon may also result
in an error. We fix to pre-close othercon as well.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If an error occurs in the sending / receiving process, if othercon
exists, sending / receiving processing using othercon may also result
in an error. We fix to pre-close othercon as well.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>DLM: fix to use sock_mutex correctly in xxx_accept_from_sock</title>
<updated>2017-09-25T17:45:21+00:00</updated>
<author>
<name>tsutomu.owa@toshiba.co.jp</name>
<email>tsutomu.owa@toshiba.co.jp</email>
</author>
<published>2017-09-12T08:56:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c7355827b27c550824bbcc1f0586cf993bf83d94'/>
<id>c7355827b27c550824bbcc1f0586cf993bf83d94</id>
<content type='text'>
In the current implementation, we think that exclusion control
for othercon in tcp_accept_from_sock() and sctp_accept_from_sock()
was not enough. We fix them.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the current implementation, we think that exclusion control
for othercon in tcp_accept_from_sock() and sctp_accept_from_sock()
was not enough. We fix them.

Signed-off-by: Tadashi Miyauchi &lt;miyauchi@toshiba-tops.co.jp&gt;
Signed-off-by: Tsutomu Owa &lt;tsutomu.owa@toshiba.co.jp&gt;
Signed-off-by: David Teigland &lt;teigland@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
