aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2015-09-23 14:59:30 -0700
committerDan Pasanen <dan.pasanen@gmail.com>2015-11-12 09:37:26 -0600
commit714e1516f4363e6be4b0ca026b7c3df2265bbbfb (patch)
tree52e996ac418466dd4087a12aad1fc2cf187fc900
parente45bfe030effd537119df7666cb573b092714575 (diff)
downloadandroid_external_f2fs-tools-714e1516f4363e6be4b0ca026b7c3df2265bbbfb.tar.gz
android_external_f2fs-tools-714e1516f4363e6be4b0ca026b7c3df2265bbbfb.tar.bz2
android_external_f2fs-tools-714e1516f4363e6be4b0ca026b7c3df2265bbbfb.zip
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 Change-Id: Iba51129508f8938765421155cc5b6ab81ea064bb Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-rw-r--r--mkfs/f2fs_format.c3
1 files changed, 2 insertions, 1 deletions
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) {