• Andrew Vagin's avatar
    file: add a general approach for inherited files · c26da2fd
    Andrew Vagin authored
    How to restore an external file? The problem is that a file
    can be opened with different flags (O_APPNED, O_RDWR, O_RONLY,
    etc). These flags can't be changed for a file descriptor, so
    we can't just duplicate an inherit fd, when we meet an external
    file.
    
    A file is external, when we can't access them directly.
    CRIU is able to restore a file descriptor, if it knows
    how to open it, so we need to provide a way to open
    an external file.
    
    The idea of this patch is that we can open an external file
    via /proc/self/fd/X where X is an inherit fd.
    
    This approach works for files and fifo.
    
    An example how it can be used:
    criu -o dump.log -D dump/fifo.py/6/1 -v4 -t 6 --external file[72:a3e7]
    criu -o restore.log -D dump/fifo.py/6/1 -v4 --restore-sibling --inherit-fd fd[4]:file[72:a3e7] --restore-detached
    
    https://github.com/xemul/criu/issues/104
    
    Cc: Saied Kazemi <saied@google.com>
    Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
    c26da2fd
Name
Last commit
Last update
Documentation Loading commit data...
contrib Loading commit data...
crit Loading commit data...
criu Loading commit data...
images Loading commit data...
lib Loading commit data...
scripts Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
Dockerfile Loading commit data...
Makefile Loading commit data...
Makefile.install Loading commit data...
README.md Loading commit data...