f2fs: add lazytime mount option
authorJaegeuk Kim <jaegeuk@kernel.org>
Sat, 21 May 2016 04:47:24 +0000 (21:47 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Fri, 3 Jun 2016 01:05:14 +0000 (18:05 -0700)
This patch adds lazytime support.

Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/super.c

index 6fa4ec8ea1f701f5b81b70ab86a15eda12297b04..14c34735e96f00b561d8bf7ba73c2300e83557c0 100644 (file)
@@ -93,6 +93,8 @@ enum {
        Opt_noinline_data,
        Opt_data_flush,
        Opt_fault_injection,
+       Opt_lazytime,
+       Opt_nolazytime,
        Opt_err,
 };
 
@@ -119,6 +121,8 @@ static match_table_t f2fs_tokens = {
        {Opt_noinline_data, "noinline_data"},
        {Opt_data_flush, "data_flush"},
        {Opt_fault_injection, "fault_injection=%u"},
+       {Opt_lazytime, "lazytime"},
+       {Opt_nolazytime, "nolazytime"},
        {Opt_err, NULL},
 };
 
@@ -506,6 +510,12 @@ static int parse_options(struct super_block *sb, char *options)
                                "FAULT_INJECTION was not selected");
 #endif
                        break;
+               case Opt_lazytime:
+                       sb->s_flags |= MS_LAZYTIME;
+                       break;
+               case Opt_nolazytime:
+                       sb->s_flags &= ~MS_LAZYTIME;
+                       break;
                default:
                        f2fs_msg(sb, KERN_ERR,
                                "Unrecognized mount option \"%s\" or missing value",
@@ -613,6 +623,9 @@ static void f2fs_dirty_inode(struct inode *inode, int flags)
                        inode->i_ino == F2FS_META_INO(sbi))
                return;
 
+       if (flags == I_DIRTY_TIME)
+               return;
+
        if (is_inode_flag_set(inode, FI_AUTO_RECOVER))
                clear_inode_flag(inode, FI_AUTO_RECOVER);
 
@@ -932,6 +945,7 @@ static void default_options(struct f2fs_sb_info *sbi)
        set_opt(sbi, BG_GC);
        set_opt(sbi, INLINE_DATA);
        set_opt(sbi, EXTENT_CACHE);
+       sbi->sb->s_flags |= MS_LAZYTIME;
 
 #ifdef CONFIG_F2FS_FS_XATTR
        set_opt(sbi, XATTR_USER);