mirror of
https://gitee.com/openharmony/third_party_f2fs-tools
synced 2024-11-23 01:59:54 +00:00
mkfs.f2fs: set segment_count in super block correctly
Now f2fs will check statistics recorded in super block in sanity_check_area_boundary() during mount. If the number of segments per zone is greater than 1, and the disk space isn't aligned with zone, mount will fail due to following condition: main_blkaddr + (segment_count_main << log_blocks_per_seg) != segment0_blkaddr + (segment_count << log_blocks_per_seg) This is because when the length of main area isn't aligned with zone, mkfs doesn't add those excess segments to segment_count_main, but adds them to segment_count. Here align segment_count with zone size as well as segment_count_main to prevent such problem. Signed-off-by: Fan Li <fanofcode.li@samsung.com> Signed-off-by: Junling Zheng <zhengjunling@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
323c8c8238
commit
b385e9f93a
@ -175,7 +175,8 @@ static int f2fs_prepare_super_block(void)
|
||||
}
|
||||
|
||||
set_sb(segment_count, (config.total_sectors * config.sector_size -
|
||||
zone_align_start_offset) / segment_size_bytes);
|
||||
zone_align_start_offset) / segment_size_bytes /
|
||||
config.segs_per_zone * config.segs_per_zone);
|
||||
|
||||
set_sb(segment0_blkaddr, zone_align_start_offset / blk_size_bytes);
|
||||
sb->cp_blkaddr = sb->segment0_blkaddr;
|
||||
|
Loading…
Reference in New Issue
Block a user