]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ksmbd: use sock_create_kern interface to create kernel socket
authorNamjae Jeon <linkinjeon@kernel.org>
Thu, 25 Sep 2025 12:12:05 +0000 (21:12 +0900)
committerSteve French <stfrench@microsoft.com>
Wed, 1 Oct 2025 02:37:54 +0000 (21:37 -0500)
we should use sock_create_kern() if the socket resides in kernel space.

Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/transport_tcp.c

index 6c6821971cf9205acb085e0303aa3971cf121eb3..7440a2fd1126a30866a1109dbba774e274a1943f 100644 (file)
@@ -455,12 +455,13 @@ static int create_socket(struct interface *iface)
        struct socket *ksmbd_socket;
        bool ipv4 = false;
 
-       ret = sock_create(PF_INET6, SOCK_STREAM, IPPROTO_TCP, &ksmbd_socket);
+       ret = sock_create_kern(current->nsproxy->net_ns, PF_INET6, SOCK_STREAM,
+                       IPPROTO_TCP, &ksmbd_socket);
        if (ret) {
                if (ret != -EAFNOSUPPORT)
                        pr_err("Can't create socket for ipv6, fallback to ipv4: %d\n", ret);
-               ret = sock_create(PF_INET, SOCK_STREAM, IPPROTO_TCP,
-                                 &ksmbd_socket);
+               ret = sock_create_kern(current->nsproxy->net_ns, PF_INET,
+                               SOCK_STREAM, IPPROTO_TCP, &ksmbd_socket);
                if (ret) {
                        pr_err("Can't create socket for ipv4: %d\n", ret);
                        goto out_clear;