mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-07-28 20:42:49 +00:00
image: Open parent image dir with -at calls
After fixes with -W option we've changed the cwd at the time parent images are opened. Use the -at syscall to proerly access ones. [ Cleanup and comment from xemul@ ] Signed-off-by: Ruslan Kuprieiev <kupruser@gmail.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
80559828d6
commit
486cad37cc
1 changed files with 9 additions and 7 deletions
16
image.c
16
image.c
|
|
@ -241,26 +241,28 @@ int open_image_dir(char *dir)
|
|||
|
||||
ret = install_service_fd(IMG_FD_OFF, fd);
|
||||
|
||||
close(fd);
|
||||
|
||||
if (opts.img_parent) {
|
||||
ret = symlink(opts.img_parent, CR_PARENT_LINK);
|
||||
int pfd;
|
||||
|
||||
ret = symlinkat(opts.img_parent, fd, CR_PARENT_LINK);
|
||||
if (ret < 0) {
|
||||
pr_perror("Can't link parent snapshot.");
|
||||
goto err;
|
||||
}
|
||||
|
||||
fd = open(CR_PARENT_LINK, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
pfd = openat(fd, CR_PARENT_LINK, O_RDONLY);
|
||||
if (pfd < 0) {
|
||||
pr_perror("Can't open parent snapshot.");
|
||||
goto err;
|
||||
}
|
||||
|
||||
ret = install_service_fd(PARENT_FD_OFF, fd);
|
||||
ret = install_service_fd(PARENT_FD_OFF, pfd);
|
||||
|
||||
close(fd);
|
||||
close(pfd);
|
||||
}
|
||||
|
||||
close(fd);
|
||||
|
||||
return ret;
|
||||
|
||||
err:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue