]> 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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:34 +0000 (15:37 -0500)
[ Upstream commit 3677ca67b9791481af16d86e47c3c7d1f2442f95 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/smb/server/transport_tcp.c

index 1009cb324fd514e57360a2a96a5377c88823a6ce..43401d09c9db40df3234e51939c40bcae0818d23 100644 (file)
@@ -473,12 +473,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;