net: add sock_set_reuseaddr
Add a helper to directly set the SO_REUSEADDR sockopt from kernel space without going through a fake uaccess. For this the iscsi target now has to formally depend on inet to avoid a mostly theoretical compile failure. For actual operation it already did depend on having ipv4 or ipv6 support. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
1eba1110f0
commit
b58f0e8f38
@@ -1127,12 +1127,8 @@ static struct socket *tcp_create_listen_sock(struct connection *con,
|
||||
kernel_setsockopt(sock, SOL_TCP, TCP_NODELAY, (char *)&one,
|
||||
sizeof(one));
|
||||
|
||||
result = kernel_setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
|
||||
(char *)&one, sizeof(one));
|
||||
sock_set_reuseaddr(sock->sk);
|
||||
|
||||
if (result < 0) {
|
||||
log_print("Failed to set SO_REUSEADDR on socket: %d", result);
|
||||
}
|
||||
write_lock_bh(&sock->sk->sk_callback_lock);
|
||||
sock->sk->sk_user_data = con;
|
||||
save_listen_callbacks(sock);
|
||||
|
Reference in New Issue
Block a user