vfs: spread struct mount - remaining argument of mnt_set_mountpoint()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2011-11-25 00:01:17 -05:00
parent a8d56d8e4f
commit 14cf1fa8f5
3 changed files with 6 additions and 6 deletions

View File

@ -570,10 +570,10 @@ static void detach_mnt(struct mount *mnt, struct path *old_path)
/* /*
* vfsmount lock must be held for write * vfsmount lock must be held for write
*/ */
void mnt_set_mountpoint(struct vfsmount *mnt, struct dentry *dentry, void mnt_set_mountpoint(struct mount *mnt, struct dentry *dentry,
struct mount *child_mnt) struct mount *child_mnt)
{ {
child_mnt->mnt_parent = real_mount(mntget(mnt)); child_mnt->mnt_parent = real_mount(mntget(&mnt->mnt));
child_mnt->mnt_mountpoint = dget(dentry); child_mnt->mnt_mountpoint = dget(dentry);
spin_lock(&dentry->d_lock); spin_lock(&dentry->d_lock);
dentry->d_flags |= DCACHE_MOUNTED; dentry->d_flags |= DCACHE_MOUNTED;
@ -585,7 +585,7 @@ void mnt_set_mountpoint(struct vfsmount *mnt, struct dentry *dentry,
*/ */
static void attach_mnt(struct mount *mnt, struct path *path) static void attach_mnt(struct mount *mnt, struct path *path)
{ {
mnt_set_mountpoint(path->mnt, path->dentry, mnt); mnt_set_mountpoint(real_mount(path->mnt), path->dentry, mnt);
list_add_tail(&mnt->mnt_hash, mount_hashtable + list_add_tail(&mnt->mnt_hash, mount_hashtable +
hash(path->mnt, path->dentry)); hash(path->mnt, path->dentry));
list_add_tail(&mnt->mnt_child, &real_mount(path->mnt)->mnt_mounts); list_add_tail(&mnt->mnt_child, &real_mount(path->mnt)->mnt_mounts);
@ -1620,7 +1620,7 @@ static int attach_recursive_mnt(struct mount *source_mnt,
attach_mnt(source_mnt, path); attach_mnt(source_mnt, path);
touch_mnt_namespace(parent_path->mnt->mnt_ns); touch_mnt_namespace(parent_path->mnt->mnt_ns);
} else { } else {
mnt_set_mountpoint(&dest_mnt->mnt, dest_dentry, source_mnt); mnt_set_mountpoint(dest_mnt, dest_dentry, source_mnt);
commit_tree(source_mnt); commit_tree(source_mnt);
} }

View File

@ -244,7 +244,7 @@ int propagate_mnt(struct mount *dest_mnt, struct dentry *dest_dentry,
} }
if (is_subdir(dest_dentry, m->mnt.mnt_root)) { if (is_subdir(dest_dentry, m->mnt.mnt_root)) {
mnt_set_mountpoint(&m->mnt, dest_dentry, child); mnt_set_mountpoint(m, dest_dentry, child);
list_add_tail(&child->mnt_hash, tree_list); list_add_tail(&child->mnt_hash, tree_list);
} else { } else {
/* /*

View File

@ -37,7 +37,7 @@ int propagate_mount_busy(struct mount *, int);
void mnt_release_group_id(struct mount *); void mnt_release_group_id(struct mount *);
int get_dominating_id(struct mount *mnt, const struct path *root); int get_dominating_id(struct mount *mnt, const struct path *root);
unsigned int mnt_get_count(struct mount *mnt); unsigned int mnt_get_count(struct mount *mnt);
void mnt_set_mountpoint(struct vfsmount *, struct dentry *, void mnt_set_mountpoint(struct mount *, struct dentry *,
struct mount *); struct mount *);
void release_mounts(struct list_head *); void release_mounts(struct list_head *);
void umount_tree(struct mount *, int, struct list_head *); void umount_tree(struct mount *, int, struct list_head *);