ksmbd: Add missing set_freezable() for freezable kthread
authorKevin Hao <haokexin@gmail.com>
Sun, 17 Dec 2023 13:41:37 +0000 (21:41 +0800)
committerSteve French <stfrench@microsoft.com>
Wed, 10 Jan 2024 02:01:16 +0000 (20:01 -0600)
The kernel thread function ksmbd_conn_handler_loop() invokes
the try_to_freeze() in its loop. But all the kernel threads are
non-freezable by default. So if we want to make a kernel thread to be
freezable, we have to invoke set_freezable() explicitly.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Acked-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/connection.c

index b6fa1e285c4016fe37a85482ec633d595a4a2105..d311c2ee10bd7f82172342dd53e58f07a36d1702 100644 (file)
@@ -284,6 +284,7 @@ int ksmbd_conn_handler_loop(void *p)
                goto out;
 
        conn->last_active = jiffies;
+       set_freezable();
        while (ksmbd_conn_alive(conn)) {
                if (try_to_freeze())
                        continue;