• Pavel Emelyanov's avatar
    proc: Use smaps path for file · 2dcccc61
    Pavel Emelyanov authored
    Kernel doesn't allow to mess with map_files dir in proc. So,
    when doing dump from user process, we should try to get
    file path using path from smaps file. To be 100% sure the
    path is correct we also get device and ino numbers and
    check them agains the stat()-ed path ones.
    
    With this scheme we miss
    
    - mapped packet sockets, but users don't use them
    - AIOs, but this can be detected via device, inode and name
    - several nested mntns's, but users don't use them
    - mapped and unlinked files, but this can be fixed by
      reading file via task's memory (slow, but still)
    
    gorcunov@:
    
     - For special mappings such as heap, vsyscall, vdso and such
       the kernel provides names rounded by brackets so exit
       from vma_get_mapfile if we meet one and allow the caller
       to handle it.
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    Looks-good-to-me: Andrew Vagin <avagin@virtuozzo.com>
    Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
    Looks-good-to-me: Andrew Vagin <avagin@virtuozzo.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    2dcccc61
proc_parse.c 49.2 KB