From ce9f1527b685402974e15c30b2caf3c1fe3ceb81 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Mon, 30 Jun 2014 15:19:00 +0200 Subject: nspawn: simplify exit condition check --- src/nspawn/nspawn.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/nspawn') diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index 8fb72d6d36..a00a220966 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 */ -- cgit v1.2.3-54-g00ecf