This patch adds lazytime support.

Signed-off-by: Jaegeuk Kim <[email protected]>
---
 fs/f2fs/super.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index e9e81cb..d0426a3 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -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",
@@ -598,6 +608,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);
 
@@ -917,6 +930,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);
-- 
2.6.3

Reply via email to