From: Michel Normand Date: Thu, 29 Apr 2010 08:03:59 +0000 (+0200) Subject: lxc: child failing before container rename X-Git-Tag: lxc-0.7.0~90 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=99a6af5202bdf8688ad0b5255cfa95addf3fc794;p=thirdparty%2Flxc.git lxc: child failing before container rename do the same checking as already done in lxc/restart.c Signed-off-by: Michel Normand Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/start.c b/src/lxc/start.c index 7d5763a75..6242296b9 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -436,6 +436,7 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[]) int sv[2]; int clone_flags; int err = -1, sync; + int failed_before_rename = 0; struct start_arg start_arg = { .name = name, @@ -474,14 +475,17 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[]) close(sv[0]); /* Wait for the child to be ready */ - if (read(sv[1], &sync, sizeof(sync)) < 0) { - SYSERROR("failed to read the socket"); - goto out_delete_net; + if (read(sv[1], &sync, sizeof(sync)) <= 0) { + ERROR("sync read failure : %m"); + failed_before_rename = 1; } if (lxc_rename_nsgroup(name, handler)) goto out_delete_net; + if (failed_before_rename) + goto out_delete_net; + /* Create the network configuration */ if (clone_flags & CLONE_NEWNET) { if (lxc_assign_network(&handler->conf->network, handler->pid)) {