propagate_one(): mnt_set_mountpoint() needs mount_lock
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 27 Apr 2020 14:26:22 +0000 (10:26 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 2 May 2020 06:50:43 +0000 (08:50 +0200)
commitc35f275f666c768ca2c33d776a851d5bfbb44cfd
tree1962013893aa509c4d049ab99e17aa2f67fc33dc
parent80c212dbb298de5805e68fcdecfa877a159c9cc1
propagate_one(): mnt_set_mountpoint() needs mount_lock

commit b0d3869ce9eeacbb1bbd541909beeef4126426d5 upstream.

... to protect the modification of mp->m_count done by it.  Most of
the places that modify that thing also have namespace_lock held,
but not all of them can do so, so we really need mount_lock here.
Kudos to Piotr Krysiuk <piotras@gmail.com>, who'd spotted a related
bug in pivot_root(2) (fixed unnoticed in 5.3); search for other
similar turds has caught out this one.

Cc: stable@kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/pnode.c