diff options
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 411728c0c8bb..6e283c93b50d 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -1667,31 +1667,31 @@ static noinline int do_new_mount(struct nameidata *nd, char *type, int flags, | |||
1667 | if (IS_ERR(mnt)) | 1667 | if (IS_ERR(mnt)) |
1668 | return PTR_ERR(mnt); | 1668 | return PTR_ERR(mnt); |
1669 | 1669 | ||
1670 | return do_add_mount(mnt, nd, mnt_flags, NULL); | 1670 | return do_add_mount(mnt, &nd->path, mnt_flags, NULL); |
1671 | } | 1671 | } |
1672 | 1672 | ||
1673 | /* | 1673 | /* |
1674 | * add a mount into a namespace's mount tree | 1674 | * add a mount into a namespace's mount tree |
1675 | * - provide the option of adding the new mount to an expiration list | 1675 | * - provide the option of adding the new mount to an expiration list |
1676 | */ | 1676 | */ |
1677 | int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd, | 1677 | int do_add_mount(struct vfsmount *newmnt, struct path *path, |
1678 | int mnt_flags, struct list_head *fslist) | 1678 | int mnt_flags, struct list_head *fslist) |
1679 | { | 1679 | { |
1680 | int err; | 1680 | int err; |
1681 | 1681 | ||
1682 | down_write(&namespace_sem); | 1682 | down_write(&namespace_sem); |
1683 | /* Something was mounted here while we slept */ | 1683 | /* Something was mounted here while we slept */ |
1684 | while (d_mountpoint(nd->path.dentry) && | 1684 | while (d_mountpoint(path->dentry) && |
1685 | follow_down(&nd->path.mnt, &nd->path.dentry)) | 1685 | follow_down(&path->mnt, &path->dentry)) |
1686 | ; | 1686 | ; |
1687 | err = -EINVAL; | 1687 | err = -EINVAL; |
1688 | if (!check_mnt(nd->path.mnt)) | 1688 | if (!check_mnt(path->mnt)) |
1689 | goto unlock; | 1689 | goto unlock; |
1690 | 1690 | ||
1691 | /* Refuse the same filesystem on the same mount point */ | 1691 | /* Refuse the same filesystem on the same mount point */ |
1692 | err = -EBUSY; | 1692 | err = -EBUSY; |
1693 | if (nd->path.mnt->mnt_sb == newmnt->mnt_sb && | 1693 | if (path->mnt->mnt_sb == newmnt->mnt_sb && |
1694 | nd->path.mnt->mnt_root == nd->path.dentry) | 1694 | path->mnt->mnt_root == path->dentry) |
1695 | goto unlock; | 1695 | goto unlock; |
1696 | 1696 | ||
1697 | err = -EINVAL; | 1697 | err = -EINVAL; |
@@ -1699,7 +1699,7 @@ int do_add_mount(struct vfsmount *newmnt, struct nameidata *nd, | |||
1699 | goto unlock; | 1699 | goto unlock; |
1700 | 1700 | ||
1701 | newmnt->mnt_flags = mnt_flags; | 1701 | newmnt->mnt_flags = mnt_flags; |
1702 | if ((err = graft_tree(newmnt, &nd->path))) | 1702 | if ((err = graft_tree(newmnt, path))) |
1703 | goto unlock; | 1703 | goto unlock; |
1704 | 1704 | ||
1705 | if (fslist) /* add to the specified expiration list */ | 1705 | if (fslist) /* add to the specified expiration list */ |