mkfs.f2fs: check the c.overprovision with zero before using it
authorKinglong Mee <kinglongmee@gmail.com>
Mon, 6 Feb 2017 09:58:43 +0000 (17:58 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 6 Feb 2017 22:49:50 +0000 (14:49 -0800)
The using of c.overprovision when it equal zero as,

        c.reserved_segments =
                        (2 * (100 / c.overprovision + 1) + 6)
                        * c.segs_per_sec;

may cause problem, although it doesn't happen.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
mkfs/f2fs_format.c

index 3c13026..2e0a4e5 100644 (file)
@@ -337,10 +337,6 @@ static int f2fs_prepare_super_block(void)
        if (c.overprovision == 0)
                c.overprovision = get_best_overprovision(sb);
 
-       c.reserved_segments =
-                       (2 * (100 / c.overprovision + 1) + 6)
-                       * c.segs_per_sec;
-
        if (c.overprovision == 0 || c.total_segments < F2FS_MIN_SEGMENTS ||
                (c.devices[0].total_sectors *
                        c.sector_size < zone_align_start_offset) ||
@@ -349,6 +345,10 @@ static int f2fs_prepare_super_block(void)
                return -1;
        }
 
+       c.reserved_segments =
+                       (2 * (100 / c.overprovision + 1) + 6)
+                       * c.segs_per_sec;
+
        uuid_generate(sb->uuid);
 
        utf8_to_utf16(sb->volume_name, (const char *)c.vol_label,