|
@@ -780,6 +780,7 @@ static void show_mnt_opts(struct seq_file *m, struct vfsmount *mnt)
|
|
{ MNT_NOATIME, ",noatime" },
|
|
{ MNT_NOATIME, ",noatime" },
|
|
{ MNT_NODIRATIME, ",nodiratime" },
|
|
{ MNT_NODIRATIME, ",nodiratime" },
|
|
{ MNT_RELATIME, ",relatime" },
|
|
{ MNT_RELATIME, ",relatime" },
|
|
|
|
+ { MNT_STRICTATIME, ",strictatime" },
|
|
{ 0, NULL }
|
|
{ 0, NULL }
|
|
};
|
|
};
|
|
const struct proc_fs_info *fs_infop;
|
|
const struct proc_fs_info *fs_infop;
|
|
@@ -1932,11 +1933,14 @@ long do_mount(char *dev_name, char *dir_name, char *type_page,
|
|
mnt_flags |= MNT_NODIRATIME;
|
|
mnt_flags |= MNT_NODIRATIME;
|
|
if (flags & MS_RELATIME)
|
|
if (flags & MS_RELATIME)
|
|
mnt_flags |= MNT_RELATIME;
|
|
mnt_flags |= MNT_RELATIME;
|
|
|
|
+ if (flags & MS_STRICTATIME)
|
|
|
|
+ mnt_flags &= ~(MNT_RELATIME | MNT_NOATIME);
|
|
if (flags & MS_RDONLY)
|
|
if (flags & MS_RDONLY)
|
|
mnt_flags |= MNT_READONLY;
|
|
mnt_flags |= MNT_READONLY;
|
|
|
|
|
|
flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE |
|
|
flags &= ~(MS_NOSUID | MS_NOEXEC | MS_NODEV | MS_ACTIVE |
|
|
- MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT);
|
|
|
|
|
|
+ MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
|
|
|
|
+ MS_STRICTATIME);
|
|
|
|
|
|
/* ... and get the mountpoint */
|
|
/* ... and get the mountpoint */
|
|
retval = kern_path(dir_name, LOOKUP_FOLLOW, &path);
|
|
retval = kern_path(dir_name, LOOKUP_FOLLOW, &path);
|