mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-06-07 16:54:15 +00:00
destroy the original container after making sure the snapshot exists (fixes #224)
Signed-off-by: S.Çağlar Onur <caglar@10ur.org> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
f49ad55851
commit
7e36f87e25
@ -3083,13 +3083,7 @@ static bool lxcapi_snapshot_restore(struct lxc_container *c, const char *snapnam
|
|||||||
|
|
||||||
if (!newname)
|
if (!newname)
|
||||||
newname = c->name;
|
newname = c->name;
|
||||||
if (strcmp(c->name, newname) == 0) {
|
|
||||||
if (!lxcapi_destroy(c)) {
|
|
||||||
ERROR("Could not destroy existing container %s", newname);
|
|
||||||
bdev_put(bdev);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ret = snprintf(clonelxcpath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
|
ret = snprintf(clonelxcpath, MAXPATHLEN, "%ssnaps/%s", c->config_path, c->name);
|
||||||
if (ret < 0 || ret >= MAXPATHLEN) {
|
if (ret < 0 || ret >= MAXPATHLEN) {
|
||||||
bdev_put(bdev);
|
bdev_put(bdev);
|
||||||
@ -3105,6 +3099,15 @@ static bool lxcapi_snapshot_restore(struct lxc_container *c, const char *snapnam
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(c->name, newname) == 0) {
|
||||||
|
if (!lxcapi_destroy(c)) {
|
||||||
|
ERROR("Could not destroy existing container %s", newname);
|
||||||
|
lxc_container_put(snap);
|
||||||
|
bdev_put(bdev);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (strcmp(bdev->type, "dir") != 0 && strcmp(bdev->type, "loop") != 0)
|
if (strcmp(bdev->type, "dir") != 0 && strcmp(bdev->type, "loop") != 0)
|
||||||
flags = LXC_CLONE_SNAPSHOT | LXC_CLONE_MAYBE_SNAPSHOT;
|
flags = LXC_CLONE_SNAPSHOT | LXC_CLONE_MAYBE_SNAPSHOT;
|
||||||
rest = lxcapi_clone(snap, newname, c->config_path, flags,
|
rest = lxcapi_clone(snap, newname, c->config_path, flags,
|
||||||
|
Loading…
Reference in New Issue
Block a user