aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/root.c
diff options
context:
space:
mode:
authorTheodore Ts'o <[email protected]>2014-03-13 14:14:33 +0000
committerTheodore Ts'o <[email protected]>2014-03-13 14:14:33 +0000
commit02b9984d640873b7b3809e63f81a0d7e13496886 (patch)
tree0ea70d3084a53d20baf68dd14f4dcb4b66d0666f /fs/proc/root.c
parentjbd2: improve error messages for inconsistent journal heads (diff)
downloadkernel-02b9984d640873b7b3809e63f81a0d7e13496886.tar.gz
kernel-02b9984d640873b7b3809e63f81a0d7e13496886.zip
fs: push sync_filesystem() down to the file system's remount_fs()
Previously, the no-op "mount -o mount /dev/xxx" operation when the file system is already mounted read-write causes an implied, unconditional syncfs(). This seems pretty stupid, and it's certainly documented or guaraunteed to do this, nor is it particularly useful, except in the case where the file system was mounted rw and is getting remounted read-only. However, it's possible that there might be some file systems that are actually depending on this behavior. In most file systems, it's probably fine to only call sync_filesystem() when transitioning from read-write to read-only, and there are some file systems where this is not needed at all (for example, for a pseudo-filesystem or something like romfs). Signed-off-by: "Theodore Ts'o" <[email protected]> Cc: [email protected] Cc: Christoph Hellwig <[email protected]> Cc: Artem Bityutskiy <[email protected]> Cc: Adrian Hunter <[email protected]> Cc: Evgeniy Dushistov <[email protected]> Cc: Jan Kara <[email protected]> Cc: OGAWA Hirofumi <[email protected]> Cc: Anders Larsen <[email protected]> Cc: Phillip Lougher <[email protected]> Cc: Kees Cook <[email protected]> Cc: Mikulas Patocka <[email protected]> Cc: Petr Vandrovec <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected]
Diffstat (limited to 'fs/proc/root.c')
-rw-r--r--fs/proc/root.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/proc/root.c b/fs/proc/root.c
index 87dbcbef7fe4..ac823a85cf6e 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -92,6 +92,8 @@ static int proc_parse_options(char *options, struct pid_namespace *pid)
int proc_remount(struct super_block *sb, int *flags, char *data)
{
struct pid_namespace *pid = sb->s_fs_info;
+
+ sync_filesystem(sb);
return !proc_parse_options(data, pid);
}