diff options
| author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-06-06 18:49:54 -0700 |
|---|---|---|
| committer | Mister Oyster <oysterized@gmail.com> | 2017-04-13 12:33:45 +0200 |
| commit | ce775c5d4ed2e729a6d51b03fe8045ba4805b42e (patch) | |
| tree | 3512a8ebbde1dfe0ce823cac883a110aa6e9e3a1 /fs | |
| parent | 2679b38bedc1d2aec60c4da1aab207f1fdb7dcc1 (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.c | 4 |
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)); |
