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
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
> >
> > .
> >
>
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel