Commit a69aad27 by Sheng Yong Committed by Serge Hallyn

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: 's avatarSheng Yong <shyodx@gmail.com> Signed-off-by: 's avatarSerge Hallyn <serge.hallyn@ubuntu.com>
parent 86b3688b
...@@ -1086,7 +1086,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, ...@@ -1086,7 +1086,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t,
const char *bdevtype, struct bdev_specs *specs, int flags, const char *bdevtype, struct bdev_specs *specs, int flags,
char *const argv[]) char *const argv[])
{ {
bool bret = false; bool ret = false;
pid_t pid; pid_t pid;
char *tpath = NULL; char *tpath = NULL;
int partial_fd; int partial_fd;
...@@ -1108,8 +1108,10 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, ...@@ -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 */ /* 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; goto out;
}
/* Mark that this container is being created */ /* Mark that this container is being created */
if ((partial_fd = create_partial(c)) < 0) if ((partial_fd = create_partial(c)) < 0)
...@@ -1175,7 +1177,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t, ...@@ -1175,7 +1177,7 @@ static bool lxcapi_create(struct lxc_container *c, const char *t,
goto out_unlock; goto out_unlock;
} }
} }
bret = load_config_locked(c, c->configfile); ret = load_config_locked(c, c->configfile);
out_unlock: out_unlock:
if (partial_fd >= 0) if (partial_fd >= 0)
...@@ -1183,9 +1185,9 @@ out_unlock: ...@@ -1183,9 +1185,9 @@ out_unlock:
out: out:
if (tpath) if (tpath)
free(tpath); free(tpath);
if (!bret && c) if (!ret && c)
lxcapi_destroy(c); lxcapi_destroy(c);
return bret; return ret;
} }
static bool lxcapi_reboot(struct lxc_container *c) static bool lxcapi_reboot(struct lxc_container *c)
......
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