Fix the checkpoint version written to the footer of the root's inode. --- mkfs/f2fs_format.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c index d844563..fe3112e 100644 --- a/mkfs/f2fs_format.c +++ b/mkfs/f2fs_format.c @@ -28,6 +28,7 @@ extern struct f2fs_configuration c; struct f2fs_super_block raw_sb; struct f2fs_super_block *sb = &raw_sb; struct f2fs_checkpoint *cp; +int f2fs_checkpoint_version; /* Return first segment number of each area */ #define prev_zone(cur) (c.cur_seg[cur] - c.segs_per_zone) @@ -619,8 +620,7 @@ static int f2fs_write_check_point_pack(void) } /* 1. cp page 1 of checkpoint pack 1 */ - srand(time(NULL)); - cp->checkpoint_ver = cpu_to_le64(rand() | 0x1); + cp->checkpoint_ver = cpu_to_le64(f2fs_checkpoint_version); set_cp(cur_node_segno[0], c.cur_seg[CURSEG_HOT_NODE]); set_cp(cur_node_segno[1], c.cur_seg[CURSEG_WARM_NODE]); set_cp(cur_node_segno[2], c.cur_seg[CURSEG_COLD_NODE]); @@ -1061,9 +1061,12 @@ static int f2fs_write_root_inode(void) return -1; } + srand(time(NULL)); + f2fs_checkpoint_version = rand() | 0x1; + raw_node->footer.nid = sb->root_ino; raw_node->footer.ino = sb->root_ino; - raw_node->footer.cp_ver = cpu_to_le64(1); + raw_node->footer.cp_ver = cpu_to_le64(f2fs_checkpoint_version); raw_node->footer.next_blkaddr = cpu_to_le32( get_sb(main_blkaddr) + c.cur_seg[CURSEG_HOT_NODE] * -- 2.7.4 Kind regards, Stathis Maneas ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel