From: Sheng Yong Date: Sun, 27 Oct 2013 06:37:46 +0000 (+0800) Subject: lxcapi_create: don't delete if container rootfs already exists X-Git-Tag: lxc-1.0.0.alpha3~43 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a69aad27ad5a217a4f58f525fb34f764390dd474;p=thirdparty%2Flxc.git lxcapi_create: don't delete if container rootfs already exists If lxc.rootfs is specified, we believe rootfs is ready. lxc-start will check this later. Return true, because the container is created. Signed-off-by: Sheng Yong Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index 9d537a6e3..7a4d75f52 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -1086,7 +1086,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, const char *bdevtype, struct bdev_specs *specs, int flags, char *const argv[]) { - bool bret = false; + bool ret = false; pid_t pid; char *tpath = NULL; int partial_fd; @@ -1108,8 +1108,10 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, } /* container is already created if we have a config and rootfs.path is accessible */ - if (lxcapi_is_defined(c) && c->lxc_conf && c->lxc_conf->rootfs.path && access(c->lxc_conf->rootfs.path, F_OK) == 0) + if (lxcapi_is_defined(c) && c->lxc_conf && c->lxc_conf->rootfs.path && access(c->lxc_conf->rootfs.path, F_OK) == 0 && !tpath) { + ret = true; goto out; + } /* Mark that this container is being created */ if ((partial_fd = create_partial(c)) < 0) @@ -1175,7 +1177,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, goto out_unlock; } } - bret = load_config_locked(c, c->configfile); + ret = load_config_locked(c, c->configfile); out_unlock: if (partial_fd >= 0) @@ -1183,9 +1185,9 @@ out_unlock: out: if (tpath) free(tpath); - if (!bret && c) + if (!ret && c) lxcapi_destroy(c); - return bret; + return ret; } static bool lxcapi_reboot(struct lxc_container *c)