Commit 8089352a authored by Al Viro's avatar Al Viro

Mirror MS_KERNMOUNT in ->mnt_flags

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d498b25a
...@@ -1701,7 +1701,7 @@ int do_add_mount(struct vfsmount *newmnt, struct path *path, ...@@ -1701,7 +1701,7 @@ int do_add_mount(struct vfsmount *newmnt, struct path *path,
{ {
int err; int err;
mnt_flags &= ~(MNT_SHARED | MNT_WRITE_HOLD); mnt_flags &= ~(MNT_SHARED | MNT_WRITE_HOLD | MNT_INTERNAL);
down_write(&namespace_sem); down_write(&namespace_sem);
/* Something was mounted here while we slept */ /* Something was mounted here while we slept */
......
...@@ -937,6 +937,9 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void ...@@ -937,6 +937,9 @@ vfs_kern_mount(struct file_system_type *type, int flags, const char *name, void
if (!mnt) if (!mnt)
goto out; goto out;
if (flags & MS_KERNMOUNT)
mnt->mnt_flags = MNT_INTERNAL;
if (data && !(type->fs_flags & FS_BINARY_MOUNTDATA)) { if (data && !(type->fs_flags & FS_BINARY_MOUNTDATA)) {
secdata = alloc_secdata(); secdata = alloc_secdata();
if (!secdata) if (!secdata)
......
...@@ -45,6 +45,8 @@ struct mnt_namespace; ...@@ -45,6 +45,8 @@ struct mnt_namespace;
#define MNT_PROPAGATION_MASK (MNT_SHARED | MNT_UNBINDABLE) #define MNT_PROPAGATION_MASK (MNT_SHARED | MNT_UNBINDABLE)
#define MNT_INTERNAL 0x4000
struct vfsmount { struct vfsmount {
struct list_head mnt_hash; struct list_head mnt_hash;
struct vfsmount *mnt_parent; /* fs we are mounted on */ struct vfsmount *mnt_parent; /* fs we are mounted on */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment