On 2015/5/7 17:20, Yunlei He wrote: > I use f2fs filesystem with /data partition on my Android phone > by the default mount options. When I remount /data in order to > adding discard option to run some benchmarks, I find the default > options such as background_gc, user_xattr and acl turned off. > > So I introduce a function named default_options in super.c. It do > some default setting, and both mount and remount operations will > call this function to complete default setting. > > Signed-off-by: Yunlei He <heyun...@huawei.com> > --- > fs/f2fs/super.c | 32 ++++++++++++++++++-------------- > 1 file changed, 18 insertions(+), 14 deletions(-) > > diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c > index 138fa93..1f9f18a 100644 > --- a/fs/f2fs/super.c > +++ b/fs/f2fs/super.c > @@ -658,6 +658,22 @@ static const struct file_operations > f2fs_seq_segment_info_fops = { > .release = single_release, > }; > > +static void default_options(struct f2fs_sb_info *sbi) > +{ > + /* init some FS parameters */ > + sbi->active_logs = NR_CURSEG_TYPE; > + > + set_opt(sbi, BG_GC); > + set_opt(sbi, INLINE_DATA); > + > +#ifdef CONFIG_F2FS_FS_XATTR > + set_opt(sbi, XATTR_USER); > +#endif > +#ifdef CONFIG_F2FS_FS_POSIX_ACL > + set_opt(sbi, POSIX_ACL); > +#endif > +} > + > static int f2fs_remount(struct super_block *sb, int *flags, char *data) > { > struct f2fs_sb_info *sbi = F2FS_SB(sb); > @@ -675,8 +691,7 @@ static int f2fs_remount(struct super_block *sb, int > *flags, char *data) > org_mount_opt = sbi->mount_opt; > active_logs = sbi->active_logs; > > - sbi->mount_opt.opt = 0; I am very sorry that this line is deleted by mistake, I'll send a version.
> - sbi->active_logs = NR_CURSEG_TYPE; > + default_options(sbi); > > /* parse mount options */ > err = parse_options(sb, data); > @@ -1018,18 +1033,7 @@ try_onemore: > goto free_sbi; > > sb->s_fs_info = sbi; > - /* init some FS parameters */ > - sbi->active_logs = NR_CURSEG_TYPE; > - > - set_opt(sbi, BG_GC); > - set_opt(sbi, INLINE_DATA); > - > -#ifdef CONFIG_F2FS_FS_XATTR > - set_opt(sbi, XATTR_USER); > -#endif > -#ifdef CONFIG_F2FS_FS_POSIX_ACL > - set_opt(sbi, POSIX_ACL); > -#endif > + default_options(sbi); > /* parse mount options */ > options = kstrdup((const char *)data, GFP_KERNEL); > if (data && !options) { > ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ Linux-f2fs-devel mailing list Linux-f2fs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel