From cc14b5541401dee18064417e82eab765410da95b Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 4 Nov 2008 07:45:05 +0000 Subject: [PATCH] Now the linx fsck man page has return codes, I find them different from the BSD's so adjust accordingly. --- init.d/fsck.in | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/init.d/fsck.in b/init.d/fsck.in index 5f7099a6..f2aa62aa 100644 --- a/init.d/fsck.in +++ b/init.d/fsck.in @@ -27,7 +27,7 @@ _reboot() { start() { - local reboot_opts= fsck_opts= p= check_extra= + local fsck_opts= p= check_extra= if [ -e /fastboot ]; then ewarn "Skipping fsck due to /fastboot" @@ -60,21 +60,31 @@ start() fsck_opts="${fsck_opts} -R" fi fi - reboot_opts="-f" fi trap : INT QUIT fsck ${fsck_args--p} ${fsck_opts} "$@" case $? in - 0) eend 0; return 0;; - 1) ewend 1 "Filesystems repaired"; return 0;; - 2|3|4) ewend 1 "Filesystems repaired, but reboot needed" - _reboot ${reboot_opts} || return 1;; - 8) ewend 1 "Operational error"; return 0;; - 12) ewend 1 "fsck interupted"; return 1;; - *) eend 2 "Filesystems couldn't be fixed" - _abort || return 1;; + 0) eend 0; return 0;; + 1) ewend 1 "Filesystems repaired"; return 0;; + 2|3) if [ "${RC_UNAME}" = "Linux" ]; then + ewend 1 "Filesystems repaired, but reboot needed" + _reboot -f + else + ewend 1 "Filesystems still have errors; manual fsck required" + fi;; + 4) if [ "${RC_UNAME}" = "Linux" ]; then + ewend 1 "Fileystem errors left uncorrected" + return 0 + else + ewend 1 "Filesystems repaired, but reboot needed" + _reboot + fi;; + 8) ewend 1 "Operational error"; return 0;; + 12) ewend 1 "fsck interupted";; + *) eend 2 "Filesystems couldn't be fixed";; esac + _abort || return 1 } stop()