On Thu, Nov 14, 2019 at 12:04:54PM +0300, Pavel Tikhomirov wrote: > More precisely the algorithm is: > a) openat mpfd to a new mountpoint through parent mount's root - > p_rootfd (which we already have) or mountpoint fd under a sibling mount > - s_mpfd if our mountpoint is already overmounted. > b) create a new mount on mpfd via /proc/<pid>/fd/<N> interface > c) openat it's rootfd via O_MNT from mpfd > > If we have mpfd and rootfd for each mount through /proc/<pid>/fd/<N> > interface we will be able to bindmount any part of each of already > created mounts to restore other mounts and we will be able to configure > mounts, e.g. change sharing or other options even if mounts are > invisible from fs-root. Everything else aside (and I'm not thrilled about the idea in general), you are not handling the situation when that overmount is, in turn, overmounted. Or when there's an automount set on top of it, etc.