diff --git a/[refs] b/[refs] index 9718c31b41de..326384038eac 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6d59e7f582ef1c1988542d0fc3b36d0087b757ce +refs/heads/master: 1a60a280778ff90270fc7390d9ec102f713a5a29 diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index 678f7ce060f2..af2fb3707d0a 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -1091,20 +1091,20 @@ struct vfsmount *copy_tree(struct vfsmount *mnt, struct dentry *dentry, struct vfsmount *collect_mounts(struct vfsmount *mnt, struct dentry *dentry) { struct vfsmount *tree; - down_read(&namespace_sem); + down_write(&namespace_sem); tree = copy_tree(mnt, dentry, CL_COPY_ALL | CL_PRIVATE); - up_read(&namespace_sem); + up_write(&namespace_sem); return tree; } void drop_collected_mounts(struct vfsmount *mnt) { LIST_HEAD(umount_list); - down_read(&namespace_sem); + down_write(&namespace_sem); spin_lock(&vfsmount_lock); umount_tree(mnt, 0, &umount_list); spin_unlock(&vfsmount_lock); - up_read(&namespace_sem); + up_write(&namespace_sem); release_mounts(&umount_list); }