From: Al Viro Date: Sat, 16 Jan 2010 17:57:40 +0000 (-0500) Subject: attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared() X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=df1a1ad29739f032f8905310796e558589403d61;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git attach_recursive_mnt() needs to hold vfsmount_lock over set_mnt_shared() race in mnt_flags update Signed-off-by: Al Viro --- diff --git a/fs/namespace.c b/fs/namespace.c index 461090a57b33..4de493ea67cf 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -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);