mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-03 06:01:58 +00:00
pin_rootfs: be quiet and don't fail container start
It's a legitimate use case to use read-only $lxcpath. If we can't create the pin file, then we're not worried about marking the fs readonly on exit. Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
9431aa65a4
commit
00ec333b2e
@ -687,32 +687,23 @@ int pin_rootfs(const char *rootfs)
|
||||
if (rootfs == NULL || strlen(rootfs) == 0)
|
||||
return -2;
|
||||
|
||||
if (!realpath(rootfs, absrootfs)) {
|
||||
INFO("failed to get real path for '%s', not pinning", rootfs);
|
||||
if (!realpath(rootfs, absrootfs))
|
||||
return -2;
|
||||
}
|
||||
|
||||
if (access(absrootfs, F_OK)) {
|
||||
SYSERROR("'%s' is not accessible", absrootfs);
|
||||
if (access(absrootfs, F_OK))
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (stat(absrootfs, &s)) {
|
||||
SYSERROR("failed to stat '%s'", absrootfs);
|
||||
if (stat(absrootfs, &s))
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!S_ISDIR(s.st_mode))
|
||||
return -2;
|
||||
|
||||
ret = snprintf(absrootfspin, MAXPATHLEN, "%s%s", absrootfs, ".hold");
|
||||
if (ret >= MAXPATHLEN) {
|
||||
SYSERROR("pathname too long for rootfs hold file");
|
||||
if (ret >= MAXPATHLEN)
|
||||
return -1;
|
||||
}
|
||||
|
||||
fd = open(absrootfspin, O_CREAT | O_RDWR, S_IWUSR|S_IRUSR);
|
||||
INFO("opened %s as fd %d\n", absrootfspin, fd);
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
@ -669,10 +669,8 @@ int lxc_spawn(struct lxc_handler *handler)
|
||||
*/
|
||||
|
||||
handler->pinfd = pin_rootfs(handler->conf->rootfs.path);
|
||||
if (handler->pinfd == -1) {
|
||||
ERROR("failed to pin the container's rootfs");
|
||||
goto out_delete_net;
|
||||
}
|
||||
if (handler->pinfd == -1)
|
||||
INFO("failed to pin the container's rootfs");
|
||||
|
||||
/* Create a process in a new set of namespaces */
|
||||
handler->pid = lxc_clone(do_start, handler, handler->clone_flags);
|
||||
|
Loading…
Reference in New Issue
Block a user