Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4b2619a5 authored by Al Viro's avatar Al Viro
Browse files

vfs: spread struct mount - commit_tree



Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 419148da
Loading
Loading
Loading
Loading
+9 −9
Original line number Diff line number Diff line
@@ -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);