For example, if we want to format 40MB image, it'll give 12 segments for main
area. And, it assigns 6 for current segments, 11 for ovp segments, and 10 for
reserved segments. So, we have 5 free segments, which we can't handle:
# of free segments < # of reserved segments.
Reported-by: Daniel Rosenberg <drosen@google.com>
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
if (c.overprovision == 0)
c.overprovision = get_best_overprovision(sb);
+ c.reserved_segments =
+ (2 * (100 / c.overprovision + 1) + NR_CURSEG_TYPE)
+ * 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) ||
- (get_sb(segment_count_main) - 2) < c.reserved_segments) {
+ (get_sb(segment_count_main) - NR_CURSEG_TYPE) <
+ c.reserved_segments) {
MSG(0, "\tError: Device size is not sufficient for F2FS volume\n");
return -1;
}
- c.reserved_segments =
- (2 * (100 / c.overprovision + 1) + 6)
- * c.segs_per_sec;
-
uuid_generate(sb->uuid);
/* precompute checksum seed for metadata */