[systemd-devel] [PATCH] fsck: define fsck return codes
Thomas H.P. Andersen
phomes at gmail.com
Mon May 11 15:58:57 PDT 2015
From: Thomas Hindoe Paaboel Andersen <phomes at gmail.com>
---
src/fsck/fsck.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/src/fsck/fsck.c b/src/fsck/fsck.c
index 56d880a..5177adc 100644
--- a/src/fsck/fsck.c
+++ b/src/fsck/fsck.c
@@ -42,6 +42,15 @@
#include "path-util.h"
#include "socket-util.h"
+#define FSCK_NO_ERROR 0
+#define FSCK_ERROR_CORRECTED 1
+#define FSCK_SYSTEM_SHOULD_REBOOT 2
+#define FSCK_ERRORS_LEFT_UNCORRECTED 4
+#define FSCK_OPERATIONAL_ERROR 8
+#define FSCK_USAGE_OR_SYNTAX_ERROR 16
+#define FSCK_USER_CANCELLED 32
+#define FSCK_SHARED_LIB_ERROR 128
+
static bool arg_skip = false;
static bool arg_force = false;
static bool arg_show_progress = false;
@@ -424,7 +433,7 @@ int main(int argc, char *argv[]) {
cmdline[i++] = NULL;
execv(cmdline[0], (char**) cmdline);
- _exit(8); /* Operational error */
+ _exit(FSCK_OPERATIONAL_ERROR);
}
progress_pipe[1] = safe_close(progress_pipe[1]);
@@ -448,10 +457,10 @@ int main(int argc, char *argv[]) {
r = -EINVAL;
- if (status.si_code == CLD_EXITED && (status.si_status & 2) && root_directory)
+ if (status.si_code == CLD_EXITED && (status.si_status & FSCK_SYSTEM_SHOULD_REBOOT) && root_directory)
/* System should be rebooted. */
start_target(SPECIAL_REBOOT_TARGET);
- else if (status.si_code == CLD_EXITED && (status.si_status & 6))
+ else if (status.si_code == CLD_EXITED && (status.si_status & (FSCK_SYSTEM_SHOULD_REBOOT | FSCK_ERRORS_LEFT_UNCORRECTED)))
/* Some other problem */
start_target(SPECIAL_EMERGENCY_TARGET);
else {
@@ -462,7 +471,7 @@ int main(int argc, char *argv[]) {
} else
r = 0;
- if (status.si_code == CLD_EXITED && (status.si_status & 1))
+ if (status.si_code == CLD_EXITED && (status.si_status & FSCK_ERROR_CORRECTED))
(void) touch("/run/systemd/quotacheck");
finish:
--
2.4.0
More information about the systemd-devel
mailing list