From: Tycho Andersen Date: Tue, 2 Sep 2014 23:37:04 +0000 (-0500) Subject: Exit on errors in restore()'s worker X-Git-Tag: lxc-1.1.0.alpha2~34 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6d5b330dc05f5cd84197057be111ad4fd0939a85;p=thirdparty%2Flxc.git Exit on errors in restore()'s worker If we just return here, we end up with two processes executing the caller's code, which is not good. Signed-off-by: Tycho Andersen Acked-by: Serge E. Hallyn --- diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c index dca0c5dad..cbe58ee08 100644 --- a/src/lxc/lxccontainer.c +++ b/src/lxc/lxccontainer.c @@ -3830,7 +3830,7 @@ static bool lxcapi_restore(struct lxc_container *c, char *directory, bool verbos struct criu_opts os; if (unshare(CLONE_NEWNS)) - return false; + exit(1); /* CRIU needs the lxc root bind mounted so that it is the root of some * mount. */ @@ -3838,15 +3838,15 @@ static bool lxcapi_restore(struct lxc_container *c, char *directory, bool verbos if (rootfs_is_blockdev(c->lxc_conf)) { if (do_rootfs_setup(c->lxc_conf, c->name, c->config_path) < 0) - return false; + exit(1); } else { if (mkdir(rootfs->mount, 0755) < 0 && errno != EEXIST) - return false; + exit(1); if (mount(rootfs->path, rootfs->mount, NULL, MS_BIND, NULL) < 0) { rmdir(rootfs->mount); - return false; + exit(1); } }