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 <[email protected]>
---
 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;
-       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) {
-- 
1.9.1


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

Reply via email to