mirror of
https://github.com/torvalds/linux.git
synced 2024-11-21 19:41:42 +00:00
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>
This commit is contained in:
parent
49f9637aaf
commit
a280c9ceec
@ -2702,6 +2702,7 @@ int jfs_lazycommit(void *arg)
|
|||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
struct jfs_sb_info *sbi;
|
struct jfs_sb_info *sbi;
|
||||||
|
|
||||||
|
set_freezable();
|
||||||
do {
|
do {
|
||||||
LAZY_LOCK(flags);
|
LAZY_LOCK(flags);
|
||||||
jfs_commit_thread_waking = 0; /* OK to wake another thread */
|
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;
|
struct jfs_inode_info *jfs_ip;
|
||||||
tid_t tid;
|
tid_t tid;
|
||||||
|
|
||||||
|
set_freezable();
|
||||||
do {
|
do {
|
||||||
/*
|
/*
|
||||||
* write each inode on the anonymous inode list
|
* write each inode on the anonymous inode list
|
||||||
|
Loading…
Reference in New Issue
Block a user