-
Andrei Vagin authored
Currently all mounts are restored in a one mount namespace, then this namespace is cloned to restore other mount namespaces and we need another copy of this namespace to clean link remap files. Let's define terms: A - the root mount namespace B - the mount namespace where link remap files are destroyed Currently we restore all mounts in the B namespace and then clone it into the A namespace. But it doesn't work in a case, when we have to open file descriptores to restore mounts (e g to restore bind-mount pty slaves), because a file descriptor has to be opened from a specified mount (which is one of restore mount namespaces). This patch reworks code so, that all mounts is restored in the A mount namespace and then the B mount namespace is created. In this case we can open files from the root mount namespace (A). $ ./zdtm.py run -t zdtm/static/pty-console --iter 5 ====================== Run zdtm/static/pty-console in ns ======================= Start test Test is SUID ./pty-console --pidfile=pty-console.pid --outfile=pty-console.out Run criu dump Run criu restore Run criu dump =[log]=> dump/zdtm/static/pty-console/36/2/dump.log ------------------------ grep Error ------------------------ (00.106521) Error (criu/files-reg.c:1132): Can't lookup mount=563 for fd=4 path=/ptmx (00.106585) Error (criu/cr-dump.c:1325): Dump files (pid: 70) failed with -1 (00.129041) Error (criu/cr-dump.c:1674): Dumping FAILED. ------------------------ ERROR OVER ------------------------ Signed-off-by:
Andrei Vagin <avagin@virtuozzo.com>
b6f75771