On 09/11, Junling Zheng wrote: > Hi, Jaegeuk > > On 2018/9/11 10:43, Junling Zheng wrote: > > On 2018/9/8 6:23, Jaegeuk Kim wrote: > >> On 08/30, Junling Zheng wrote: > >>> diff --git a/include/f2fs_fs.h b/include/f2fs_fs.h > >>> index 38a0da4..df46950 100644 > >>> --- a/include/f2fs_fs.h > >>> +++ b/include/f2fs_fs.h > >>> @@ -1411,4 +1411,39 @@ static inline int parse_root_owner(char *ids, > >>> return 0; > >>> } > >>> > >>> +enum SB_ADDR { > >>> + SB_ADDR_0, > >>> + SB_ADDR_1, > >>> + SB_ADDR_MAX, > >>> +}; > >>> + > >>> +#define SB_FIRST (1 << SB_ADDR_0) > >>> +#define SB_SECOND (1 << SB_ADDR_1) > >>> +#define SB_ALL (SB_FIRST | SB_SECOND) > >>> + > >>> +static inline int __write_superblock(struct f2fs_super_block *sb, int > >>> sb_mask) > >>> +{ > >>> + int index, ret; > >>> + u_int8_t *buf; > >>> + > >>> + buf = calloc(F2FS_BLKSIZE, 1); > >>> + ASSERT(buf); > >>> + > >>> + memcpy(buf + F2FS_SUPER_OFFSET, sb, sizeof(*sb)); > >>> + for (index = 0; index < SB_ADDR_MAX; index++) { > >>> + if ((1 << index) & sb_mask) { > >>> + ret = dev_write_block(buf, index); > >> > >> This doesn't look like a proper inline function. > >> > > > > Ok, I'll remove the "inline" flag :) > > Any other flaws? > > > > Thanks > > > > Sorry, here may be difficult to handle :( > > This function is used in both mkfs and fsck, so I think it's proper to place > it in > include/f2fs_fs.h. > > Then, if the "inline" flag is removed it will generate some compile warnings > as below: > > In file included from libf2fs.c:11:0: > ../include/f2fs_fs.h:1428:12: warning: '__write_superblock' defined but not > used [-Wunused-function] > static int __write_superblock(struct f2fs_super_block *sb, int sb_mask) > ^ > > Besides, there're some other complex functions like get_best_overprovision(), > parse_feature() > being defined as inline functions. > > So, I think it's better to keep it inline. what do you think?
I meant we'd better keep them separately, since mkfs is quite independent from fsck friends. Thanks, > > Thanks > > >>> + if (ret) { > >>> + MSG(0, "\tError: While writing superblock %d " > >>> + "to disk!!!\n", index); > >>> + free(buf); > >>> + return ret; > >>> + } > >>> + } > >>> + } > >>> + > >>> + free(buf); > >>> + return 0; > >>> +} > >>> + > >>> #endif /*__F2FS_FS_H */ > >>> diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c > >>> index 621126c..7e3846e 100644 > >>> --- a/mkfs/f2fs_format.c > >>> +++ b/mkfs/f2fs_format.c > >>> @@ -979,24 +979,7 @@ free_cp: > >>> > >>> static int f2fs_write_super_block(void) > >>> { > >>> - int index; > >>> - u_int8_t *zero_buff; > >>> - > >>> - zero_buff = calloc(F2FS_BLKSIZE, 1); > >>> - > >>> - memcpy(zero_buff + F2FS_SUPER_OFFSET, sb, sizeof(*sb)); > >>> - DBG(1, "\tWriting super block, at offset 0x%08x\n", 0); > >>> - for (index = 0; index < 2; index++) { > >>> - if (dev_write_block(zero_buff, index)) { > >>> - MSG(1, "\tError: While while writing supe_blk " > >>> - "on disk!!! index : %d\n", index); > >>> - free(zero_buff); > >>> - return -1; > >>> - } > >>> - } > >>> - > >>> - free(zero_buff); > >>> - return 0; > >>> + return __write_superblock(sb, SB_ALL); > >>> } > >>> > >>> #ifndef WITH_ANDROID > >>> -- > >>> 2.18.0 > >> > >> . > >> > > > > > > > > > > _______________________________________________ > > Linux-f2fs-devel mailing list > > Linux-f2fs-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > > > > . > > > _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel