2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-31 06:15:24 +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:
Ruslan Kuprieiev
2013-11-18 13:22:10 +04:00
committed by Pavel Emelyanov
parent 80559828d6
commit 486cad37cc

16
image.c
View File

@@ -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: