ext4: set lazytime on remount if MS_LAZYTIME is set by mount
authorTheodore Ts'o <tytso@mit.edu>
Tue, 23 Jun 2015 15:03:54 +0000 (11:03 -0400)
committerTheodore Ts'o <tytso@mit.edu>
Tue, 23 Jun 2015 15:03:54 +0000 (11:03 -0400)
Newer versions of mount parse the lazytime feature and pass it to the
mount system call via the flags field in the mount system call,
removing the lazytime string from the mount options list.  So we need
to check for the presence of MS_LAZYTIME and set it in sb->s_flags in
order for this flag to be set on a remount.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@vger.kernel.org
fs/ext4/super.c

index bd4df9d379b2f162b20f65cc24c18bc3442069fb..90ec13fe8ac73e5d81cda8ce4d267afbf2ff571a 100644 (file)
@@ -4971,6 +4971,9 @@ static int ext4_remount(struct super_block *sb, int *flags, char *data)
                set_task_ioprio(sbi->s_journal->j_task, journal_ioprio);
        }
 
+       if (*flags & MS_LAZYTIME)
+               sb->s_flags |= MS_LAZYTIME;
+
        if ((*flags & MS_RDONLY) != (sb->s_flags & MS_RDONLY)) {
                if (sbi->s_mount_flags & EXT4_MF_FS_ABORTED) {
                        err = -EROFS;