aboutsummaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-06-06 18:49:54 -0700
committerMister Oyster <oysterized@gmail.com>2017-04-13 12:33:45 +0200
commitce775c5d4ed2e729a6d51b03fe8045ba4805b42e (patch)
tree3512a8ebbde1dfe0ce823cac883a110aa6e9e3a1 /fs
parent2679b38bedc1d2aec60c4da1aab207f1fdb7dcc1 (diff)
f2fs: skip clean segment for gc
If a segment in a section is clean or prefreed, we don't need to get its summary and do gc. Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/gc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index d7b74dce1..583d6b425 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -795,6 +795,10 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
}
for (segno = start_segno; segno < end_segno; segno++) {
+
+ if (get_valid_blocks(sbi, segno, 1) == 0)
+ continue;
+
/* find segment summary of victim */
sum_page = find_get_page(META_MAPPING(sbi),
GET_SUM_BLOCK(sbi, segno));