• Andrey Vagin's avatar
    mount: cut a common part of sources for bind-mounts · a19643e6
    Andrey Vagin authored
    The source of the root mount may be not equal to "/" and we need to take
    this fact into account, when we bind-mount it to somewhere.
    
    For example:
    
    11877 ?        Ss     0:00 ./bind-mount --pidfile=bind-mount.pid --outfile=bind-mount.out --dirname=bind-mount.test
    11880 ?        Ss     0:00  \_ ./bind-mount --pidfile=bind-mount.pid --outfile=bind-mount.out --dirname=bind-mount.test
    [root@avagin-fc19-cr crtools]# cat /proc/11880/mountinfo
    68 42 8:3 /root/git/crtools/test / rw,relatime - ext4 /dev/sda3 rw,data=ordered
    43 68 0:33 / /proc rw,relatime - proc proc rw
    44 68 0:34 / /dev/pts rw,relatime - devpts pts rw,mode=666,ptmxmode=666
    45 68 8:3 /root/git/crtools/test/zdtm/live/static/bind-mount.test/test /zdtm/live/static/bind-mount.test/bind rw,relatime - ext4 /dev/sda3 rw,data=ordered
    
    The 45 mount is bind-mount of the 68 mount.
    mi(45)->root = /root/git/crtools/test/zdtm/live/static/bind-mount.test/test
    mi(68)->root = /root/git/crtools/test
    
    so the comman part is "/root/git/crtools/test" and the command is
    mount --bind /zdtm/live/static/bind-mount.test/test /zdtm/live/static/bind-mount.test/bind
    Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    a19643e6
mount.c 33.3 KB