From: Jaegeuk Kim Date: Wed, 23 Sep 2015 21:59:30 +0000 (-0700) Subject: mkfs.f2fs: fix wrong ovp space calculation on large section X-Git-Tag: v1.5.0~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6e2b58dcaffc2d88291e07fa1f99773eca04a58f;p=platform%2Fupstream%2Ff2fs-tools.git mkfs.f2fs: fix wrong ovp space calculation on large section If a section consists of multiple segments, we should change the equation to apply it on reserved space. On 128GB, option overprovision area reserved area -o5 -s128 9094 6144 -o5 -s64 6179 3072 -o5 -s1 3309 48 -o1 -s128 27009 26624 -o1 -s64 13831 13312 -o1 -s1 858 208 -s1 858 208 -s64 * 13831 13312 -s128 * 27009 26624 : * should be wrong. After patch, -s1 (ovp:1%) 858 208 -s64 (ovp:4%) 6172 3712 -s128 (ovp:6%) 8721 5120 Signed-off-by: Jaegeuk Kim --- diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c index 21e74fe..2d4ab09 100644 --- a/mkfs/f2fs_format.c +++ b/mkfs/f2fs_format.c @@ -171,7 +171,8 @@ static u_int32_t get_best_overprovision(void) } for (; candidate <= end; candidate += diff) { - reserved = 2 * (100 / candidate + 1) + 6; + reserved = (2 * (100 / candidate + 1) + 6) * + get_sb(segs_per_sec); ovp = (get_sb(segment_count_main) - reserved) * candidate / 100; space = get_sb(segment_count_main) - reserved - ovp; if (max_space < space) {