f2fs: clear discard_wake earlier
If SBI_NEED_FSCK is set, discard_wake will never be cleared. As a result, the condition of wait_event_interruptible_timeout() is always true, which gets discard thread run too frequently. Signed-off-by: Sheng Yong <shengyong1@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
f9d1dced75
commit
35a9a766a1
|
@ -1402,6 +1402,10 @@ static int issue_discard_thread(void *data)
|
|||
kthread_should_stop() || freezing(current) ||
|
||||
dcc->discard_wake,
|
||||
msecs_to_jiffies(wait_ms));
|
||||
|
||||
if (dcc->discard_wake)
|
||||
dcc->discard_wake = 0;
|
||||
|
||||
if (try_to_freeze())
|
||||
continue;
|
||||
if (f2fs_readonly(sbi->sb))
|
||||
|
@ -1413,9 +1417,6 @@ static int issue_discard_thread(void *data)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (dcc->discard_wake)
|
||||
dcc->discard_wake = 0;
|
||||
|
||||
if (sbi->gc_mode == GC_URGENT)
|
||||
__init_discard_policy(sbi, &dpolicy, DPOLICY_FORCE, 1);
|
||||
|
||||
|
|
Loading…
Reference in New Issue