summaryrefslogtreecommitdiff
path: root/src/fsck/fsck.c
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-11-20 09:49:42 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2018-11-20 16:48:21 +0100
commitcac0b957906f282b4a54e28187f24d4789aa2bad (patch)
treedb33664ea823c282e9246d400c8f540cdec472dc /src/fsck/fsck.c
parent50378e5d972d2f3a521f56d158bc45c3f5ce541d (diff)
downloadsystemd-cac0b957906f282b4a54e28187f24d4789aa2bad.tar.gz
basic/main-func: propagate all positive return values
This changes DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE() to propagate positive return values as they were, i.e. stops mapping them all to EXIT_FAILURE. This was suggested in review, but I thought that we only ever return EXIT_FAILURE, so we don't need to propagate multiple return values. I was wrong. Turns out that we already *do* have multiple positive return values, when we call external binaries and propagate the result. systemd-inhibit is one example, and b453c447e0fb4a1e9eccd42120731c1700220b21 actually broke this propagation. This commit fixes it. In systemd-fsck we have the opposite case: we have only one failure value, and the code needs to be adjusted, so that it keeps returning EXIT_FAILURE. All other users of DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE() return <= 1, and are unaffected by this change.
Diffstat (limited to 'src/fsck/fsck.c')
-rw-r--r--src/fsck/fsck.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index b1ce210fcc..995cf92ef1 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -428,7 +428,7 @@ static int run(int argc, char *argv[]) {
if (exit_status & FSCK_ERROR_CORRECTED)
(void) touch("/run/systemd/quotacheck");
- return exit_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED);
+ return !!(exit_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED));
}
DEFINE_MAIN_FUNCTION_WITH_POSITIVE_FAILURE(run);