diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index fe3b6c3e7553..0caabb0f42bc 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1482,6 +1482,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)) @@ -1493,9 +1497,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);