From 6d5b330dc05f5cd84197057be111ad4fd0939a85 Mon Sep 17 00:00:00 2001 From: Tycho Andersen Date: Tue, 2 Sep 2014 18:37:04 -0500 Subject: [PATCH] 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 --- src/lxc/lxccontainer.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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); } } -- 2.47.2