diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/namespace.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 444557e04b3..fad3b218679 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -609,16 +609,16 @@ static inline void __mnt_make_shortterm(struct vfsmount *mnt) /* * vfsmount lock must be held for write */ -static void commit_tree(struct vfsmount *mnt) +static void commit_tree(struct mount *mnt) { - struct vfsmount *parent = mnt->mnt_parent; + struct vfsmount *parent = mnt->mnt.mnt_parent; struct vfsmount *m; LIST_HEAD(head); struct mnt_namespace *n = parent->mnt_ns; - BUG_ON(parent == mnt); + BUG_ON(parent == &mnt->mnt); - list_add_tail(&head, &mnt->mnt_list); + list_add_tail(&head, &mnt->mnt.mnt_list); list_for_each_entry(m, &head, mnt_list) { m->mnt_ns = n; __mnt_make_longterm(m); @@ -626,9 +626,9 @@ static void commit_tree(struct vfsmount *mnt) list_splice(&head, n->list.prev); - list_add_tail(&mnt->mnt_hash, mount_hashtable + - hash(parent, mnt->mnt_mountpoint)); - list_add_tail(&mnt->mnt_child, &parent->mnt_mounts); + list_add_tail(&mnt->mnt.mnt_hash, mount_hashtable + + hash(parent, mnt->mnt.mnt_mountpoint)); + list_add_tail(&mnt->mnt.mnt_child, &parent->mnt_mounts); touch_mnt_namespace(n); } @@ -1617,12 +1617,12 @@ static int attach_recursive_mnt(struct vfsmount *source_mnt, touch_mnt_namespace(parent_path->mnt->mnt_ns); } else { mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt); - commit_tree(source_mnt); + commit_tree(real_mount(source_mnt)); } list_for_each_entry_safe(child, p, &tree_list, mnt.mnt_hash) { list_del_init(&child->mnt.mnt_hash); - commit_tree(&child->mnt); + commit_tree(child); } br_write_unlock(vfsmount_lock); |