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

Reply via email to