From: Lennart Poettering Date: Mon, 30 Jun 2014 13:19:00 +0000 (+0200) Subject: nspawn: simplify exit condition check X-Git-Tag: v215~110 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=ce9f1527b685402974e15c30b2caf3c1fe3ceb81;p=elogind.git nspawn: simplify exit condition check --- diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 8fb72d6d3..a00a22096 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -3309,14 +3309,15 @@ check_container_status: r = wait_for_container(pid, &container_status); pid = 0; - if (r != 0) { - /* If r < 0, explicitly set to EXIT_FAILURE, - * otherwise return the exit code of the - * containered process. */ - if (r < 0) - r = EXIT_FAILURE; + if (r < 0) { + /* We failed to wait for the container, or the + * container exited abnormally */ + r = EXIT_FAILURE; break; - } else if (container_status == CONTAINER_TERMINATED) + } else if (r > 0 || container_status == CONTAINER_TERMINATED) + /* The container exited with a non-zero + * status, or with zero status and no reboot + * was requested. */ break; /* CONTAINER_REBOOTED, loop again */