diff options
Diffstat (limited to 'fs/namespace.c')
-rw-r--r-- | fs/namespace.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/namespace.c b/fs/namespace.c index 6324dfc80dc6..c175218ebae1 100644 --- a/fs/namespace.c +++ b/fs/namespace.c | |||
@@ -548,6 +548,7 @@ void release_mounts(struct list_head *head) | |||
548 | m = mnt->mnt_parent; | 548 | m = mnt->mnt_parent; |
549 | mnt->mnt_mountpoint = mnt->mnt_root; | 549 | mnt->mnt_mountpoint = mnt->mnt_root; |
550 | mnt->mnt_parent = mnt; | 550 | mnt->mnt_parent = mnt; |
551 | m->mnt_ghosts--; | ||
551 | spin_unlock(&vfsmount_lock); | 552 | spin_unlock(&vfsmount_lock); |
552 | dput(dentry); | 553 | dput(dentry); |
553 | mntput(m); | 554 | mntput(m); |
@@ -572,8 +573,10 @@ void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill) | |||
572 | __touch_mnt_namespace(p->mnt_ns); | 573 | __touch_mnt_namespace(p->mnt_ns); |
573 | p->mnt_ns = NULL; | 574 | p->mnt_ns = NULL; |
574 | list_del_init(&p->mnt_child); | 575 | list_del_init(&p->mnt_child); |
575 | if (p->mnt_parent != p) | 576 | if (p->mnt_parent != p) { |
577 | p->mnt_parent->mnt_ghosts++; | ||
576 | p->mnt_mountpoint->d_mounted--; | 578 | p->mnt_mountpoint->d_mounted--; |
579 | } | ||
577 | change_mnt_propagation(p, MS_PRIVATE); | 580 | change_mnt_propagation(p, MS_PRIVATE); |
578 | } | 581 | } |
579 | } | 582 | } |