f2fs: fix the wrong stat count of calling gc
authorChao Yu <chao2.yu@samsung.com>
Mon, 22 Feb 2016 10:32:13 +0000 (18:32 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 23 Feb 2016 05:40:00 +0000 (21:40 -0800)
With a partition which was formated as multi segments in one section,
we stated incorrectly for count of gc operation.

e.g., for a partition with segs_per_sec = 4

cat /sys/kernel/debug/f2fs/status

GC calls: 208 (BG: 7)
  - data segments : 104 (52)
  - node segments : 104 (24)

GC called count should be (104 (data segs) + 104 (node segs)) / 4 = 52,
rather than 208. Fix it.

Signed-off-by: Chao Yu <chao2.yu@samsung.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/gc.c

index c01353429ba0c898a5ec1fbe2dadcbec4f1e6f72..8d63fc0b84eadb40cff55479f32196f516358bf3 100644 (file)
@@ -820,7 +820,6 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
                                                                gc_type);
 
                stat_inc_seg_count(sbi, type, gc_type);
-               stat_inc_call_count(sbi->stat_info);
 
                f2fs_put_page(sum_page, 0);
        }
@@ -845,6 +844,9 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
                        if (get_valid_blocks(sbi, start_segno++, 1) == 0)
                                seg_freed++;
        }
+
+       stat_inc_call_count(sbi->stat_info);
+
        return seg_freed;
 }