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 */ |
