diff options
| author | Arnd Bergmann <arnd@arndb.de> | 2013-04-09 15:29:20 +0200 | 
|---|---|---|
| committer | Arnd Bergmann <arnd@arndb.de> | 2013-04-09 15:29:43 +0200 | 
| commit | 44c0d2377539fafd1023ec7e16765b71c7f4fbce (patch) | |
| tree | 49065c2af83c723f150bf636939790ad3108a897 /fs/pnode.c | |
| parent | 8024206dbf4e0701f0cdf259a122ea23db3a7a16 (diff) | |
| parent | 07961ac7c0ee8b546658717034fe692fd12eefa9 (diff) | |
| download | olio-linux-3.10-44c0d2377539fafd1023ec7e16765b71c7f4fbce.tar.xz olio-linux-3.10-44c0d2377539fafd1023ec7e16765b71c7f4fbce.zip  | |
Merge tag 'v3.9-rc5' into next/cleanup
This is a dependency for the mxs/cleanup branch.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'fs/pnode.c')
| -rw-r--r-- | fs/pnode.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/pnode.c b/fs/pnode.c index 3e000a51ac0..8b29d2164da 100644 --- a/fs/pnode.c +++ b/fs/pnode.c @@ -9,6 +9,7 @@  #include <linux/mnt_namespace.h>  #include <linux/mount.h>  #include <linux/fs.h> +#include <linux/nsproxy.h>  #include "internal.h"  #include "pnode.h" @@ -220,6 +221,7 @@ static struct mount *get_source(struct mount *dest,  int propagate_mnt(struct mount *dest_mnt, struct dentry *dest_dentry,  		    struct mount *source_mnt, struct list_head *tree_list)  { +	struct user_namespace *user_ns = current->nsproxy->mnt_ns->user_ns;  	struct mount *m, *child;  	int ret = 0;  	struct mount *prev_dest_mnt = dest_mnt; @@ -237,6 +239,10 @@ int propagate_mnt(struct mount *dest_mnt, struct dentry *dest_dentry,  		source =  get_source(m, prev_dest_mnt, prev_src_mnt, &type); +		/* Notice when we are propagating across user namespaces */ +		if (m->mnt_ns->user_ns != user_ns) +			type |= CL_UNPRIVILEGED; +  		child = copy_tree(source, source->mnt.mnt_root, type);  		if (IS_ERR(child)) {  			ret = PTR_ERR(child);  |