From: Al Viro Date: Sat, 16 Jan 2010 18:01:26 +0000 (-0500) Subject: mnt_flags fixes in do_remount() X-Git-Tag: v2.6.33-rc5~25^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7b43a79f32c0a05e7562043af98e25c05c89b18e;p=platform%2Fkernel%2Flinux-exynos.git mnt_flags fixes in do_remount() * need vfsmount_lock over modifying it * need to preserve MNT_SHARED/MNT_UNBINDABLE Signed-off-by: Al Viro --- diff --git a/fs/namespace.c b/fs/namespace.c index 4de493e..779293e 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1536,8 +1536,12 @@ static int do_remount(struct path *path, int flags, int mnt_flags, err = change_mount_flags(path->mnt, flags); else err = do_remount_sb(sb, flags, data, 0); - if (!err) + if (!err) { + spin_lock(&vfsmount_lock); + mnt_flags |= path->mnt->mnt_flags & MNT_PNODE_MASK; path->mnt->mnt_flags = mnt_flags; + spin_unlock(&vfsmount_lock); + } up_write(&sb->s_umount); if (!err) { security_sb_post_remount(path->mnt, flags, data);