Now f2fs will check statistics recorded in super block in 
sanity_check_area_boundary()
during mount,if number of segments per section is greater than 1, and disk 
space 
isn't aligned with section, 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 section, mkfs 
didn't 
add the number of excess segments to segment_count_main, but add it to 
segment_count. 
Here align segment_count with section size to prevent such problem.

Signed-off-by: Fan Li <fanofcode...@samsung.com>
---
 mkfs/f2fs_format.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 66d7342..aab2491 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -174,7 +174,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_sec*config.segs_per_sec);
 
        set_sb(segment0_blkaddr, zone_align_start_offset / blk_size_bytes);
        sb->cp_blkaddr = sb->segment0_blkaddr;
-- 
1.7.9.5


------------------------------------------------------------------------------
Site24x7 APM Insight: Get Deep Visibility into Application Performance
APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month
Monitor end-to-end web transactions and take corrective actions now
Troubleshoot faster and improve end-user experience. Signup Now!
http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140
_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to