• Andrew Vagin's avatar
    mount: fix a race between restoring namespaces and file mappings (v2) · af55c059
    Andrew Vagin authored
    Currently we wait when a namespace will be restored to get its root.
    We need to open a namespace root to open a file to restore a memory mapping.
    
    A process restores mappings and only then forks children. So we can have
    a situation, when we need to open a file from a namespace, which will be
    "restored" by one of our children.
    
    The root task restores all mount namespaces and opens a file descriptor
    for each of them. In this patch we open root for each mntns in the root
    task.
    
    If we neeed to get root of a namespace which isn't populated, we can get
    it from the root task. After the CR_STATE_FORKING stage, the root task
    closes all namespace descriptors ane we know that all namespaces are
    populated at this moment.
    
    v2: don't close root_fd for root ns, because it was not opened
    Signed-off-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
    af55c059
Name
Last commit
Last update
..
asm-generic Loading commit data...
action-scripts.h Loading commit data...
aio.h Loading commit data...
bfd.h Loading commit data...
bitmap.h Loading commit data...
bug.h Loading commit data...
cgroup.h Loading commit data...
compiler.h Loading commit data...
config-base.h Loading commit data...
cpu.h Loading commit data...
cr-errno.h Loading commit data...
cr-service-const.h Loading commit data...
cr-service.h Loading commit data...
cr-show.h Loading commit data...
cr_options.h Loading commit data...
criu-log.h Loading commit data...
criu-plugin.h Loading commit data...
crtools.h Loading commit data...
err.h Loading commit data...
errno.h Loading commit data...
eventfd.h Loading commit data...
eventpoll.h Loading commit data...
fault-injection.h Loading commit data...
fcntl.h Loading commit data...
fifo.h Loading commit data...
file-ids.h Loading commit data...
file-lock.h Loading commit data...
files-reg.h Loading commit data...
files.h Loading commit data...
fs-magic.h Loading commit data...
fsnotify.h Loading commit data...
image-desc.h Loading commit data...
image.h Loading commit data...
imgset.h Loading commit data...
inet_diag.h Loading commit data...
ipc_ns.h Loading commit data...
irmap.h Loading commit data...
kcmp-ids.h Loading commit data...
kcmp.h Loading commit data...
kerndat.h Loading commit data...
libnetlink.h Loading commit data...
list.h Loading commit data...
lock.h Loading commit data...
log.h Loading commit data...
lsm.h Loading commit data...
magic.h Loading commit data...
mem.h Loading commit data...
mman.h Loading commit data...
mount.h Loading commit data...
namespaces.h Loading commit data...
net.h Loading commit data...
netfilter.h Loading commit data...
netlink_diag.h Loading commit data...
packet_diag.h Loading commit data...
page-pipe.h Loading commit data...
page-read.h Loading commit data...
page-xfer.h Loading commit data...
pagemap-cache.h Loading commit data...
parasite-syscall.h Loading commit data...
parasite-vdso.h Loading commit data...
parasite.h Loading commit data...
pid.h Loading commit data...
pipes.h Loading commit data...
plugin.h Loading commit data...
posix-timer.h Loading commit data...
prctl.h Loading commit data...
proc_parse.h Loading commit data...
protobuf-desc.h Loading commit data...
protobuf.h Loading commit data...
pstree.h Loading commit data...
ptrace.h Loading commit data...
rbtree.h Loading commit data...
restorer.h Loading commit data...
rst-malloc.h Loading commit data...
rst_info.h Loading commit data...
seccomp.h Loading commit data...
security.h Loading commit data...
seize.h Loading commit data...
servicefd.h Loading commit data...
setproctitle.h Loading commit data...
shmem.h Loading commit data...
sigframe.h Loading commit data...
signalfd.h Loading commit data...
sk-inet.h Loading commit data...
sk-packet.h Loading commit data...
sk-queue.h Loading commit data...
sockets.h Loading commit data...
stats.h Loading commit data...
string.h Loading commit data...
syscall-types.h Loading commit data...
sysctl.h Loading commit data...
sysfs_parse.h Loading commit data...
timerfd.h Loading commit data...
tty.h Loading commit data...
tun.h Loading commit data...
unix_diag.h Loading commit data...
util-pie.h Loading commit data...
util-vdso.h Loading commit data...
util.h Loading commit data...
uts_ns.h Loading commit data...
vdso.h Loading commit data...
vma.h Loading commit data...
xmalloc.h Loading commit data...