Commit 486cad37 authored by Ruslan Kuprieiev's avatar Ruslan Kuprieiev Committed by Pavel Emelyanov

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: 's avatarRuslan Kuprieiev <kupruser@gmail.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 80559828
...@@ -241,26 +241,28 @@ int open_image_dir(char *dir) ...@@ -241,26 +241,28 @@ int open_image_dir(char *dir)
ret = install_service_fd(IMG_FD_OFF, fd); ret = install_service_fd(IMG_FD_OFF, fd);
close(fd);
if (opts.img_parent) { 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) { if (ret < 0) {
pr_perror("Can't link parent snapshot."); pr_perror("Can't link parent snapshot.");
goto err; goto err;
} }
fd = open(CR_PARENT_LINK, O_RDONLY); pfd = openat(fd, CR_PARENT_LINK, O_RDONLY);
if (fd < 0) { if (pfd < 0) {
pr_perror("Can't open parent snapshot."); pr_perror("Can't open parent snapshot.");
goto err; 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; return ret;
err: err:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment