summaryrefslogtreecommitdiff
path: root/net/core/sock.c
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2020-05-28 08:12:17 +0300
committerDavid S. Miller <davem@davemloft.net>2020-05-28 21:11:45 +0300
commitfe31a326a4aadb4a3ba2b21deacc380d06802737 (patch)
treedbdc85446db7c9e70c44b1ed69b5d29ebea1e129 /net/core/sock.c
parent26cfabf9cdd273650126d84a48a7f8dedbcded48 (diff)
downloadlinux-fe31a326a4aadb4a3ba2b21deacc380d06802737.tar.xz
net: add sock_set_reuseport
Add a helper to directly set the SO_REUSEPORT sockopt from kernel space without going through a fake uaccess. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/sock.c')
-rw-r--r--net/core/sock.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/core/sock.c b/net/core/sock.c
index 3c6ebf952e9a..2ca3425b519c 100644
--- a/net/core/sock.c
+++ b/net/core/sock.c
@@ -729,6 +729,14 @@ void sock_set_reuseaddr(struct sock *sk)
}
EXPORT_SYMBOL(sock_set_reuseaddr);
+void sock_set_reuseport(struct sock *sk)
+{
+ lock_sock(sk);
+ sk->sk_reuseport = true;
+ release_sock(sk);
+}
+EXPORT_SYMBOL(sock_set_reuseport);
+
void sock_no_linger(struct sock *sk)
{
lock_sock(sk);