f2fs: issue discard aggressively in the gc_urgent mode
authorJaegeuk Kim <jaegeuk@kernel.org>
Fri, 23 Feb 2018 07:30:55 +0000 (23:30 -0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 12 Mar 2018 23:05:53 +0000 (08:05 +0900)
This patch avoids to skip discard commands when user sets gc_urgent mode.

Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/segment.c

index 5e5e293..1e3dd3d 100644 (file)
@@ -1411,12 +1411,11 @@ static int issue_discard_thread(void *data)
                if (kthread_should_stop())
                        return 0;
 
-               if (dcc->discard_wake) {
+               if (dcc->discard_wake)
                        dcc->discard_wake = 0;
-                       if (sbi->gc_thread && sbi->gc_thread->gc_urgent)
-                               init_discard_policy(&dpolicy,
-                                                       DPOLICY_FORCE, 1);
-               }
+
+               if (sbi->gc_thread && sbi->gc_thread->gc_urgent)
+                       init_discard_policy(&dpolicy, DPOLICY_FORCE, 1);
 
                sb_start_intwrite(sbi->sb);
 
@@ -1727,7 +1726,7 @@ void init_discard_policy(struct discard_policy *dpolicy,
        } else if (discard_type == DPOLICY_FORCE) {
                dpolicy->min_interval = DEF_MIN_DISCARD_ISSUE_TIME;
                dpolicy->max_interval = DEF_MAX_DISCARD_ISSUE_TIME;
-               dpolicy->io_aware = true;
+               dpolicy->io_aware = false;
        } else if (discard_type == DPOLICY_FSTRIM) {
                dpolicy->io_aware = false;
        } else if (discard_type == DPOLICY_UMOUNT) {