diff --git a/[refs] b/[refs] index be7a1b46f9e6..e5763b9078b0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6f50142e4b092a469920a0008fc23121c3d99f2f +refs/heads/master: 202322e6f7cd12e82b5ff0fa92bbdf517fcf0947 diff --git a/trunk/fs/namespace.c b/trunk/fs/namespace.c index 208c079e9fdb..a0d0ef1f1a48 100644 --- a/trunk/fs/namespace.c +++ b/trunk/fs/namespace.c @@ -345,6 +345,7 @@ static void umount_tree(struct vfsmount *mnt) for (p = mnt; p; p = next_mnt(p, mnt)) { list_del(&p->mnt_list); list_add(&p->mnt_list, &kill); + p->mnt_namespace = NULL; } while (!list_empty(&kill)) { @@ -1449,15 +1450,8 @@ void __init mnt_init(unsigned long mempages) void __put_namespace(struct namespace *namespace) { - struct vfsmount *mnt; - down_write(&namespace->sem); spin_lock(&vfsmount_lock); - - list_for_each_entry(mnt, &namespace->list, mnt_list) { - mnt->mnt_namespace = NULL; - } - umount_tree(namespace->root); spin_unlock(&vfsmount_lock); up_write(&namespace->sem);