Messages in this thread Patch in this message | | | From | Ryusuke Konishi <> | Subject | [PATCH] nilfs2: Add missing set_freezable() for freezable kthread | Date | Tue, 19 Dec 2023 18:09:18 +0900 |
| |
From: Kevin Hao <haokexin@gmail.com>
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.
Signed-off-by: Kevin Hao <haokexin@gmail.com> Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> --- Andrew, please add this to the queue for the next merge window (if it's still ok). This fixes an issue where the log writer thread was not calling try_to_freeze() as intended when starting suspend or hibernation.
I haven't run into any problems with or without this change in various suspend/hibernation tests so far, so I haven't added a Cc tag to the stable team.
If any suspend failures are reported due to the lack of this setup, I will separately request the stable team to backport this.
Thanks, Ryusuke Konishi
fs/nilfs2/segment.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 52995838f2de..2590a0860eab 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c @@ -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 (;;) { -- 2.34.1
| |