Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit df1a1ad2 authored by Al Viro's avatar Al Viro
Browse files

attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared()



race in mnt_flags update

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 8ad08d8a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1354,12 +1354,12 @@ static int attach_recursive_mnt(struct vfsmount *source_mnt,
	if (err)
		goto out_cleanup_ids;

	spin_lock(&vfsmount_lock);

	if (IS_MNT_SHARED(dest_mnt)) {
		for (p = source_mnt; p; p = next_mnt(p, source_mnt))
			set_mnt_shared(p);
	}

	spin_lock(&vfsmount_lock);
	if (parent_path) {
		detach_mnt(source_mnt, parent_path);
		attach_mnt(source_mnt, path);