From a69aad27ad5a217a4f58f525fb34f764390dd474 Mon Sep 17 00:00:00 2001 From: Sheng Yong Date: Sun, 27 Oct 2013 14:37:46 +0800 Subject: [PATCH] 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 --- src/lxc/lxccontainer.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) 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) -- 2.47.2