提交 be08d6d2 编写于 作者: A Al Viro

switch mnt_namespace ->root to struct mount

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 0226f492
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
struct mnt_namespace { struct mnt_namespace {
atomic_t count; atomic_t count;
struct vfsmount * root; struct mount * root;
struct list_head list; struct list_head list;
wait_queue_head_t poll; wait_queue_head_t poll;
int event; int event;
......
...@@ -2197,7 +2197,7 @@ static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns, ...@@ -2197,7 +2197,7 @@ static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
struct mnt_namespace *new_ns; struct mnt_namespace *new_ns;
struct vfsmount *rootmnt = NULL, *pwdmnt = NULL; struct vfsmount *rootmnt = NULL, *pwdmnt = NULL;
struct mount *p, *q; struct mount *p, *q;
struct mount *old = real_mount(mnt_ns->root); struct mount *old = mnt_ns->root;
struct mount *new; struct mount *new;
new_ns = alloc_mnt_ns(); new_ns = alloc_mnt_ns();
...@@ -2212,7 +2212,7 @@ static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns, ...@@ -2212,7 +2212,7 @@ static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
kfree(new_ns); kfree(new_ns);
return ERR_PTR(-ENOMEM); return ERR_PTR(-ENOMEM);
} }
new_ns->root = &new->mnt; new_ns->root = new;
br_write_lock(vfsmount_lock); br_write_lock(vfsmount_lock);
list_add_tail(&new_ns->list, &new->mnt_list); list_add_tail(&new_ns->list, &new->mnt_list);
br_write_unlock(vfsmount_lock); br_write_unlock(vfsmount_lock);
...@@ -2282,7 +2282,7 @@ static struct mnt_namespace *create_mnt_ns(struct vfsmount *m) ...@@ -2282,7 +2282,7 @@ static struct mnt_namespace *create_mnt_ns(struct vfsmount *m)
struct mount *mnt = real_mount(m); struct mount *mnt = real_mount(m);
mnt->mnt_ns = new_ns; mnt->mnt_ns = new_ns;
__mnt_make_longterm(mnt); __mnt_make_longterm(mnt);
new_ns->root = m; new_ns->root = mnt;
list_add(&new_ns->list, &mnt->mnt_list); list_add(&new_ns->list, &mnt->mnt_list);
} else { } else {
mntput(m); mntput(m);
...@@ -2512,8 +2512,8 @@ static void __init init_mount_tree(void) ...@@ -2512,8 +2512,8 @@ static void __init init_mount_tree(void)
init_task.nsproxy->mnt_ns = ns; init_task.nsproxy->mnt_ns = ns;
get_mnt_ns(ns); get_mnt_ns(ns);
root.mnt = ns->root; root.mnt = mnt;
root.dentry = ns->root->mnt_root; root.dentry = mnt->mnt_root;
set_fs_pwd(current->fs, &root); set_fs_pwd(current->fs, &root);
set_fs_root(current->fs, &root); set_fs_root(current->fs, &root);
...@@ -2560,7 +2560,7 @@ void put_mnt_ns(struct mnt_namespace *ns) ...@@ -2560,7 +2560,7 @@ void put_mnt_ns(struct mnt_namespace *ns)
return; return;
down_write(&namespace_sem); down_write(&namespace_sem);
br_write_lock(vfsmount_lock); br_write_lock(vfsmount_lock);
umount_tree(real_mount(ns->root), 0, &umount_list); umount_tree(ns->root, 0, &umount_list);
br_write_unlock(vfsmount_lock); br_write_unlock(vfsmount_lock);
up_write(&namespace_sem); up_write(&namespace_sem);
release_mounts(&umount_list); release_mounts(&umount_list);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册