On 07/23, Sotirios-Efstathios Maneas wrote: > Dear all, > > The following patch fixes the checkpoint version written to the footer of the > inode associated with the root directory, while creating > the file system from scratch. Furthermore, the patch fixes some typos in the > printed messages. > > diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > index 1a2deae..25febd1 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) > @@ -592,13 +593,13 @@ static int f2fs_write_check_point_pack(void) > > sum = calloc(F2FS_BLKSIZE, 1); > if (sum == NULL) { > - MSG(1, "\tError: Calloc Failed for summay_node!!!\n"); > + MSG(1, "\tError: Calloc Failed for summary_node!!!\n"); > goto free_cp; > } > > sum_compact = calloc(F2FS_BLKSIZE, 1); > if (sum_compact == NULL) { > - MSG(1, "\tError: Calloc Failed for summay buffer!!!\n"); > + MSG(1, "\tError: Calloc Failed for summary buffer!!!\n"); > goto free_sum; > } > sum_compact_p = sum_compact; > @@ -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]); > @@ -920,7 +920,7 @@ static int f2fs_write_check_point_pack(void) > } > > /* cp page 1 of check point pack 2 > - * Initiatialize other checkpoint pack with version zero > + * Initialise other checkpoint pack with version zero > */ > cp->checkpoint_ver = 0; > > @@ -975,6 +975,10 @@ static int f2fs_write_super_block(void) > u_int8_t *zero_buff; > > zero_buff = calloc(F2FS_BLKSIZE, 1); > + if (!zero_buff) { > + MSG(1, "\tError: Calloc Failed for > f2fs_write_super_block!!!\n"); > + return -1; > + } > > memcpy(zero_buff + F2FS_SUPER_OFFSET, sb, sizeof(*sb)); > DBG(1, "\tWriting super block, at offset 0x%08x\n", 0); > @@ -1057,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);
We don't check this cp version in f2fs tho? Thanks, > raw_node->footer.next_blkaddr = cpu_to_le32( > get_sb(main_blkaddr) + > c.cur_seg[CURSEG_HOT_NODE] * > @@ -1630,13 +1637,13 @@ int f2fs_format_device(void) > > err = f2fs_init_sit_area(); > if (err < 0) { > - MSG(0, "\tError: Failed to Initialise the SIT AREA!!!\n"); > + MSG(0, "\tError: Failed to initialise the SIT AREA!!!\n"); > goto exit; > } > > err = f2fs_init_nat_area(); > if (err < 0) { > - MSG(0, "\tError: Failed to Initialise the NAT AREA!!!\n"); > + MSG(0, "\tError: Failed to initialise the NAT AREA!!!\n"); > goto exit; > } > > diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c > index 449a0ed..95eec67 100644 > --- a/mkfs/f2fs_format_main.c > +++ b/mkfs/f2fs_format_main.c > @@ -193,22 +193,22 @@ static void f2fs_parse_options(int argc, char *argv[]) > > if (!(c.feature & cpu_to_le32(F2FS_FEATURE_EXTRA_ATTR))) { > if (c.feature & cpu_to_le32(F2FS_FEATURE_PRJQUOTA)) { > - MSG(0, "\tInfo: project quota feature should always > been" > + MSG(0, "\tInfo: project quota feature should always be" > "enabled with extra attr feature\n"); > exit(1); > } > if (c.feature & cpu_to_le32(F2FS_FEATURE_INODE_CHKSUM)) { > - MSG(0, "\tInfo: inode checksum feature should always > been" > + MSG(0, "\tInfo: inode checksum feature should always be" > "enabled with extra attr feature\n"); > exit(1); > } > if (c.feature & > cpu_to_le32(F2FS_FEATURE_FLEXIBLE_INLINE_XATTR)) { > - MSG(0, "\tInfo: flexible inline xattr feature should > always been" > + MSG(0, "\tInfo: flexible inline xattr feature should > always be" > "enabled with extra attr feature\n"); > exit(1); > } > if (c.feature & cpu_to_le32(F2FS_FEATURE_INODE_CRTIME)) { > - MSG(0, "\tInfo: inode crtime feature should always been" > + MSG(0, "\tInfo: inode crtime feature should always be" > "enabled with extra attr feature\n"); > exit(1); > } > > 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 ------------------------------------------------------------------------------ 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