diff options
Diffstat (limited to 'fs/pnode.c')
| -rw-r--r-- | fs/pnode.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/pnode.c b/fs/pnode.c index 37b568ed0e05..da42ee61c1df 100644 --- a/fs/pnode.c +++ b/fs/pnode.c | |||
| @@ -53,8 +53,7 @@ static int do_make_slave(struct vfsmount *mnt) | |||
| 53 | if (master) { | 53 | if (master) { |
| 54 | list_for_each_entry(slave_mnt, &mnt->mnt_slave_list, mnt_slave) | 54 | list_for_each_entry(slave_mnt, &mnt->mnt_slave_list, mnt_slave) |
| 55 | slave_mnt->mnt_master = master; | 55 | slave_mnt->mnt_master = master; |
| 56 | list_del(&mnt->mnt_slave); | 56 | list_move(&mnt->mnt_slave, &master->mnt_slave_list); |
| 57 | list_add(&mnt->mnt_slave, &master->mnt_slave_list); | ||
| 58 | list_splice(&mnt->mnt_slave_list, master->mnt_slave_list.prev); | 57 | list_splice(&mnt->mnt_slave_list, master->mnt_slave_list.prev); |
| 59 | INIT_LIST_HEAD(&mnt->mnt_slave_list); | 58 | INIT_LIST_HEAD(&mnt->mnt_slave_list); |
| 60 | } else { | 59 | } else { |
| @@ -283,10 +282,8 @@ static void __propagate_umount(struct vfsmount *mnt) | |||
| 283 | * umount the child only if the child has no | 282 | * umount the child only if the child has no |
| 284 | * other children | 283 | * other children |
| 285 | */ | 284 | */ |
| 286 | if (child && list_empty(&child->mnt_mounts)) { | 285 | if (child && list_empty(&child->mnt_mounts)) |
| 287 | list_del(&child->mnt_hash); | 286 | list_move_tail(&child->mnt_hash, &mnt->mnt_hash); |
| 288 | list_add_tail(&child->mnt_hash, &mnt->mnt_hash); | ||
| 289 | } | ||
| 290 | } | 287 | } |
| 291 | } | 288 | } |
| 292 | 289 | ||
