X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=src%2Flxc%2Flxccontainer.c;h=364c6c7a784efc452e81b27381ff9bf2fcf55571;hb=2341916a0367130d5a084a89884c15c3a835a4b4;hp=bee34db015115dddd250ceb6480dc6a1bca74c4e;hpb=5283a1182eec6e7a625026bfdab8ebe4deb10ea2;p=mirror_lxc.git diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index bee34db01..364c6c7a7 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -525,13 +525,17 @@ WRAP_API(bool, lxcapi_is_running) static bool do_lxcapi_freeze(struct lxc_container *c) { int ret; + lxc_state_t s; if (!c) return false; - ret = lxc_freeze(c->lxc_conf, c->name, c->config_path); - if (ret < 0) - return false; + s = lxc_getstate(c->name, c->config_path); + if (s != FROZEN) { + ret = lxc_freeze(c->lxc_conf, c->name, c->config_path); + if (ret < 0) + return false; + } return true; } @@ -541,13 +545,17 @@ WRAP_API(bool, lxcapi_freeze) static bool do_lxcapi_unfreeze(struct lxc_container *c) { int ret; + lxc_state_t s; if (!c) return false; - ret = lxc_unfreeze(c->lxc_conf, c->name, c->config_path); - if (ret < 0) - return false; + s = lxc_getstate(c->name, c->config_path); + if (s == FROZEN) { + ret = lxc_unfreeze(c->lxc_conf, c->name, c->config_path); + if (ret < 0) + return false; + } return true; }