nilfs2: add missing set_freezable() for freezable kthread
authorKevin Hao <haokexin@gmail.com>
Tue, 19 Dec 2023 09:09:18 +0000 (18:09 +0900)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 29 Dec 2023 20:22:28 +0000 (12:22 -0800)
The kernel thread function nilfs_segctor_thread() 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.

Link: https://lkml.kernel.org/r/20231219090918.2329-1-konishi.ryusuke@gmail.com
Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
fs/nilfs2/segment.c

index 52995838f2de9c78d8078901ce0ce21ac42638a2..2590a0860eab022ba68a18b9db8fe181faab5069 100644 (file)
@@ -2588,6 +2588,7 @@ static int nilfs_segctor_thread(void *arg)
                   "segctord starting. Construction interval = %lu seconds, CP frequency < %lu seconds",
                   sci->sc_interval / HZ, sci->sc_mjcp_freq / HZ);
 
+       set_freezable();
        spin_lock(&sci->sc_state_lock);
  loop:
        for (;;) {