diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c index bc364c119af6..fd1985b79a8d 100644 --- a/fs/ext4/mmp.c +++ b/fs/ext4/mmp.c @@ -183,9 +183,15 @@ static int kmmpd(void *data) } diff = jiffies - last_update_time; - if (diff < mmp_update_interval * HZ) - schedule_timeout_interruptible(mmp_update_interval * - HZ - diff); + if (diff < mmp_update_interval * HZ) { + set_current_state(TASK_INTERRUPTIBLE); + if (kthread_should_stop()) { + __set_current_state(TASK_RUNNING); + break; + } + + schedule_timeout(mmp_update_interval * HZ - diff); + } /* * We need to make sure that more than mmp_check_interval