From: Sheng Yong <shengyo...@xiaomi.com> Because node and data blocks are updated out of place on zoned device, sit_area_bitmap and main_area_bitmap are required to record which blocks are allocated, sit should be flushed to reflect changes in block address, and checkpoint should be rewritten to update cursegs.
Signed-off-by: Sheng Yong <shengyo...@xiaomi.com> --- fsck/inject.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/fsck/inject.c b/fsck/inject.c index b3228621de48..96817a806f8f 100644 --- a/fsck/inject.c +++ b/fsck/inject.c @@ -1172,6 +1172,9 @@ int do_inject(struct f2fs_sb_info *sbi) struct inject_option *opt = (struct inject_option *)c.private; int ret = -EINVAL; + if (c.zoned_model == F2FS_ZONED_HM) + fsck_init(sbi); + if (opt->sb >= 0) ret = inject_sb(sbi, opt); else if (opt->cp >= 0) @@ -1187,5 +1190,15 @@ int do_inject(struct f2fs_sb_info *sbi) else if (opt->dent) ret = inject_dentry(sbi, opt); + if (c.zoned_model == F2FS_ZONED_HM) { + if (!ret && (opt->node || opt->dent)) { + write_curseg_info(sbi); + flush_journal_entries(sbi); + flush_sit_entries(sbi); + write_checkpoint(sbi); + } + fsck_free(sbi); + } + return ret; } -- 2.43.0 _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel