Fixes for assorted bugs caught by struct mount audit. This stuff sits in git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git #fixes Please, review; I'm going to push those to Linus in a few days. Individual patches in followups. 1) fs/fhandle.c: fix a race in call of has_locked_children() traversing the list of children without mount_lock; oopsable, present since v6.11. 2) path_overmount(): avoid false negatives namespace_sem is not enough to prevent false negatives from __lookup_mnt(); rcu_read_lock() makes it memory-safe, but mount_lock seqretry is needed for valid result. Present since _way_ back - predates path_overmount(), actually. Originally introduced in v5.7 3) finish_automount(): don't leak MNT_LOCKED from parent to child MNT_LOCKED is incompatible with MNT_SHRINKABLE and such combinations had been prevented from the very beginning; unfortunately, one case got missed - automount triggered within an MNT_LOCKED mount. Goes all the way back to v3.12... 4) fix propagation graph breakage by MOVE_MOUNT_SET_GROUP move_mount(2) In case when old mount both receives and transmits mount events, do_set_group() end up corrupting the data structures. Introduced in v5.15 5) fs: allow clone_private_mount() for a path on real rootfs v6.15 introduced a way to use locations in detached trees as overlayfs layers; unfortunately, the way it had been done ended up breaking something that used to be allowed - using locations on initramfs as overlayfs layers. Turns out that people really used such setups...