From 3a939f95a4caebf446965117ae6dee64440270ad Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 5 Feb 2010 09:30:46 -0500 Subject: [PATCH] --- yaml --- r: 185727 b: refs/heads/master c: 8089352a13b785d4e0df63d87bd2b71c76bb9aee h: refs/heads/master i: 185725: 48dacd9e6ebd45f53364aed05419a8aedf0d3b7e 185723: a47c19ad9509f2b2ff4fee9f2706d5263634f006 185719: 1b407eff2b0b6b4731263f669f19cfad2b744ee7 185711: 798dcf01effec7183e6e1261eb7d4e9262378329 185695: a5098c36c366379d04e0f6dca92c4a907fa5865d 185663: 7834d4c9b9285b56d74deda08bb1651dd09f4708 185599: 470f89e6649455058892a4cd50f0ad44c9bf39e1 v: v3 --- [refs] | 2 +- trunk/fs/namespace.c | 2 +- trunk/fs/super.c | 3 +++ trunk/include/linux/mount.h | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index f75b5b042bf1..36c3eb6ef572 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d498b25a4f877be535246c4e5b6ee5890781a477 +refs/heads/master: 8089352a13b785d4e0df63d87bd2b71c76bb9aee diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index b0b15cc2117c..ffa3843404e0 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -1701,7 +1701,7 @@ int do_add_mount(struct vfsmount *newmnt, struct path *path, { int err; - mnt_flags &= ~(MNT_SHARED | MNT_WRITE_HOLD); + mnt_flags &= ~(MNT_SHARED | MNT_WRITE_HOLD | MNT_INTERNAL); down_write(&namespace_sem); /* Something was mounted here while we slept */ diff --git a/trunk/fs/super.c b/trunk/fs/super.c index 903896ec7c73..f35ac6022109 100644 --- a/trunk/fs/super.c +++ b/trunk/fs/super.c @@ -937,6 +937,9 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void if (!mnt) goto out; + if (flags & MS_KERNMOUNT) + mnt->mnt_flags = MNT_INTERNAL; + if (data && !(type->fs_flags & FS_BINARY_MOUNTDATA)) { secdata = alloc_secdata(); if (!secdata) diff --git a/trunk/include/linux/mount.h b/trunk/include/linux/mount.h index 163896137ab5..ca726ebf50a3 100644 --- a/trunk/include/linux/mount.h +++ b/trunk/include/linux/mount.h @@ -45,6 +45,8 @@ struct mnt_namespace; #define MNT_PROPAGATION_MASK (MNT_SHARED | MNT_UNBINDABLE) +#define MNT_INTERNAL 0x4000 + struct vfsmount { struct list_head mnt_hash; struct vfsmount *mnt_parent; /* fs we are mounted on */