diff --git a/src/lxc/conf.c b/src/lxc/conf.c index 2d95e5dad..5f9ae87e6 100644 --- a/src/lxc/conf.c +++ b/src/lxc/conf.c @@ -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; } diff --git a/src/lxc/start.c b/src/lxc/start.c index 0356fc028..2d09887d2 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -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);