Whamcloud - gitweb
LU-14195 lnet: improve compat code for IPV6_V6ONLY sock opt 59/43559/3
authorMr NeilBrown <neilb@suse.de>
Thu, 6 May 2021 01:27:28 +0000 (11:27 +1000)
committerOleg Drokin <green@whamcloud.com>
Wed, 19 May 2021 02:03:39 +0000 (02:03 +0000)
commit6d111ff0dde182bfbdf0a7ab10df812ab43e2ddd
tree98a4412adf7b5f7946e866ff1540691158a74298
parent4d5a2eba617780eadf172cb5c1fc28d5ab023a97
LU-14195 lnet: improve compat code for IPV6_V6ONLY sock opt

As get_fs() and set_fs() are deprecated, using them to call
sock->ops->setsockopt() is not a good solution.
Since linux 5.9 (v5.8-rc4-1952-ga7b75c5a8c41) it has been
possible to pass a "sockptr" to ->setsockopt() which can provide
a kernel address.

Prior to 5.8, kernet_setsockopt() is available and should still be
used.

For 5.8, when neither preferred option is available, we can pass
a NULL pointer which has the same effect as a pointer to zero.

Fixes: 10d99554631b ("LU-13783 lnet: remove kernel_setsockopt() from lnet_sock_listen()")
Signed-off-by: Mr NeilBrown <neilb@suse.de>
Change-Id: I78c1f735a73cc9c835371c139e946144c6df5108
Reviewed-on: https://review.whamcloud.com/43559
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Chris Horn <chris.horn@hpe.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lnet/lnet/lib-socket.c