mirror of
https://github.com/torvalds/linux.git
synced 2026-06-03 12:03:54 +02:00
do_move_mount(): take dropping the old mountpoint into attach_recursive_mnt()
... and fold it with unhash_mnt() there - there's no need to retain a reference to old_mp beyond that point, since by then all mountpoints we were going to add are either explicitly pinned by get_mountpoint() or have stuff already added to them. Reviewed-by: Christian Brauner <brauner@kernel.org> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
86b1da96c5
commit
761de25854
|
|
@ -2682,7 +2682,7 @@ static int attach_recursive_mnt(struct mount *source_mnt,
|
|||
}
|
||||
|
||||
if (moving) {
|
||||
unhash_mnt(source_mnt);
|
||||
umount_mnt(source_mnt);
|
||||
mnt_notify_add(source_mnt);
|
||||
} else {
|
||||
if (source_mnt->mnt_ns) {
|
||||
|
|
@ -3598,7 +3598,7 @@ static int do_move_mount(struct path *old_path,
|
|||
struct mount *p;
|
||||
struct mount *old;
|
||||
struct mount *parent;
|
||||
struct mountpoint *mp, *old_mp;
|
||||
struct mountpoint *mp;
|
||||
int err;
|
||||
bool attached, beneath = flags & MNT_TREE_BENEATH;
|
||||
|
||||
|
|
@ -3610,7 +3610,6 @@ static int do_move_mount(struct path *old_path,
|
|||
p = real_mount(new_path->mnt);
|
||||
parent = old->mnt_parent;
|
||||
attached = mnt_has_parent(old);
|
||||
old_mp = old->mnt_mp;
|
||||
ns = old->mnt_ns;
|
||||
|
||||
err = -EINVAL;
|
||||
|
|
@ -3684,8 +3683,6 @@ static int do_move_mount(struct path *old_path,
|
|||
/* if the mount is moved, it should no longer be expire
|
||||
* automatically */
|
||||
list_del_init(&old->mnt_expire);
|
||||
if (attached)
|
||||
put_mountpoint(old_mp);
|
||||
out:
|
||||
unlock_mount(mp);
|
||||
if (!err) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user