76 lines
3.1 KiB
Diff
76 lines
3.1 KiB
Diff
From c986f1e5ff7afaa52274ee25a7ba94bec0356d03 Mon Sep 17 00:00:00 2001
|
|
From: Lennart Poettering <lennart@poettering.net>
|
|
Date: Thu, 30 Oct 2014 20:53:23 +0100
|
|
Subject: [PATCH] nspawn: don't make up -1 as error code
|
|
|
|
(cherry picked from commit fddbb89c46ea5d39e52e361b390ea34a06cbb67c)
|
|
---
|
|
src/nspawn/nspawn.c | 27 +++++++++++----------------
|
|
1 file changed, 11 insertions(+), 16 deletions(-)
|
|
|
|
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
|
|
index d88987a580..7e96efd425 100644
|
|
--- a/src/nspawn/nspawn.c
|
|
+++ b/src/nspawn/nspawn.c
|
|
@@ -2931,33 +2931,30 @@ static int wait_for_container(pid_t pid, ContainerStatus *container) {
|
|
}
|
|
|
|
switch (status.si_code) {
|
|
+
|
|
case CLD_EXITED:
|
|
r = status.si_status;
|
|
if (r == 0) {
|
|
if (!arg_quiet)
|
|
- log_debug("Container %s exited successfully.",
|
|
- arg_machine);
|
|
+ log_debug("Container %s exited successfully.", arg_machine);
|
|
|
|
*container = CONTAINER_TERMINATED;
|
|
- } else {
|
|
- log_error("Container %s failed with error code %i.",
|
|
- arg_machine, status.si_status);
|
|
- }
|
|
+ } else
|
|
+ log_error("Container %s failed with error code %i.", arg_machine, status.si_status);
|
|
+
|
|
break;
|
|
|
|
case CLD_KILLED:
|
|
if (status.si_status == SIGINT) {
|
|
if (!arg_quiet)
|
|
- log_info("Container %s has been shut down.",
|
|
- arg_machine);
|
|
+ log_info("Container %s has been shut down.", arg_machine);
|
|
|
|
*container = CONTAINER_TERMINATED;
|
|
r = 0;
|
|
break;
|
|
} else if (status.si_status == SIGHUP) {
|
|
if (!arg_quiet)
|
|
- log_info("Container %s is being rebooted.",
|
|
- arg_machine);
|
|
+ log_info("Container %s is being rebooted.", arg_machine);
|
|
|
|
*container = CONTAINER_REBOOTED;
|
|
r = 0;
|
|
@@ -2966,15 +2963,13 @@ static int wait_for_container(pid_t pid, ContainerStatus *container) {
|
|
/* CLD_KILLED fallthrough */
|
|
|
|
case CLD_DUMPED:
|
|
- log_error("Container %s terminated by signal %s.",
|
|
- arg_machine, signal_to_string(status.si_status));
|
|
- r = -1;
|
|
+ log_error("Container %s terminated by signal %s.", arg_machine, signal_to_string(status.si_status));
|
|
+ r = -EIO;
|
|
break;
|
|
|
|
default:
|
|
- log_error("Container %s failed due to unknown reason.",
|
|
- arg_machine);
|
|
- r = -1;
|
|
+ log_error("Container %s failed due to unknown reason.", arg_machine);
|
|
+ r = -EIO;
|
|
break;
|
|
}
|
|
|