From: Yunlei He <heyunlei@huawei.com>
To: jaegeuk@kernel.org, chao2.yu@samsung.com,
linux-f2fs-devel@lists.sourceforge.net
Subject: [PATCH] mkfs.f2fs: introduce zone align for main area
Date: Wed, 6 Jan 2016 15:54:37 +0800 [thread overview]
Message-ID: <1452066877-8554-1-git-send-email-heyunlei@huawei.com> (raw)
This patch calculate main area begin from a new zone,
avoid misalign if segments per zone is not 1.
Signed-off-by: Yunlei He <heyunlei@huawei.com>
Signed-off-by: Shuoran Liu <liushuoran@huawei.com>
---
mkfs/f2fs_format.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
index 66d7342..fe45322 100644
--- a/mkfs/f2fs_format.c
+++ b/mkfs/f2fs_format.c
@@ -126,7 +126,8 @@ static int f2fs_prepare_super_block(void)
u_int32_t sit_segments;
u_int32_t blocks_for_sit, blocks_for_nat, blocks_for_ssa;
u_int32_t total_valid_blks_available;
- u_int64_t zone_align_start_offset, diff, total_meta_segments;
+ u_int64_t zone_align_start_offset, diff;
+ u_int64_t total_meta_zones, total_meta_segments;
u_int32_t sit_bitmap_size, max_sit_bitmap_size;
u_int32_t max_nat_bitmap_size, max_nat_segments;
u_int32_t total_zones;
@@ -259,16 +260,17 @@ static int f2fs_prepare_super_block(void)
set_sb(segment_count_ssa, get_sb(segment_count_ssa) +
(config.segs_per_zone - diff));
- set_sb(main_blkaddr, get_sb(ssa_blkaddr) + get_sb(segment_count_ssa) *
- config.blks_per_seg);
+ total_meta_zones = ZONE_ALIGN(total_meta_segments *
+ config.blks_per_seg);
- set_sb(segment_count_main, get_sb(segment_count) -
- (get_sb(segment_count_ckpt) +
- get_sb(segment_count_sit) +
- get_sb(segment_count_nat) +
- get_sb(segment_count_ssa)));
+ set_sb(main_blkaddr, get_sb(segment0_blkaddr) + total_meta_zones *
+ config.segs_per_zone * config.blks_per_seg);
+
+ total_zones = get_sb(segment_count) / (config.segs_per_zone) -
+ total_meta_zones;
- set_sb(section_count, get_sb(segment_count_main) / config.segs_per_sec);
+ set_sb(section_count, total_zones * config.secs_per_zone);
set_sb(segment_count_main, get_sb(section_count) * config.segs_per_sec);
@@ -297,7 +299,6 @@ static int f2fs_prepare_super_block(void)
set_sb(meta_ino, 2);
set_sb(root_ino, 3);
- total_zones = get_sb(segment_count_main) / (config.segs_per_zone);
if (total_zones <= 6) {
MSG(1, "\tError: %d zones: Need more zones \
by shrinking zone size\n", total_zones);
--
1.9.1
------------------------------------------------------------------------------
next reply other threads:[~2016-01-06 7:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-06 7:54 Yunlei He [this message]
2016-01-07 23:29 ` [PATCH] mkfs.f2fs: introduce zone align for main area Jaegeuk Kim
2016-01-08 2:28 ` He YunLei
-- strict thread matches above, loose matches on Subject: below --
2016-01-08 2:25 Yunlei He
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1452066877-8554-1-git-send-email-heyunlei@huawei.com \
--to=heyunlei@huawei.com \
--cc=chao2.yu@samsung.com \
--cc=jaegeuk@kernel.org \
--cc=linux-f2fs-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).