From: Kevin Hao <haokexin@gmail.com> Date: Mon, 18 Dec 2023 05:23:23 +0000 (+0800) Subject: jfs: Add missing set_freezable() for freezable kthread X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=a280c9ceeca73fad22af79b08b470fc7126cf1d5;p=linux.git jfs: Add missing set_freezable() for freezable kthread The kernel thread function jfs_lazycommit() and jfs_sync() invoke the try_to_freeze() in its loop. But all the kernel threads are no-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: Dave Kleikamp <dave.kleikamp@oracle.com> --- diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c index dccc8b3f10459..be17e3c43582f 100644 --- a/fs/jfs/jfs_txnmgr.c +++ b/fs/jfs/jfs_txnmgr.c @@ -2702,6 +2702,7 @@ int jfs_lazycommit(void *arg) unsigned long flags; struct jfs_sb_info *sbi; + set_freezable(); do { LAZY_LOCK(flags); jfs_commit_thread_waking = 0; /* OK to wake another thread */ @@ -2884,6 +2885,7 @@ int jfs_sync(void *arg) struct jfs_inode_info *jfs_ip; tid_t tid; + set_freezable(); do { /* * write each inode on the anonymous inode list