summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2012-03-17 11:12:55 +0100
committerTom Gundersen <teg@jklm.no>2012-03-17 11:12:55 +0100
commit28ec5b76ca5cbb53ec9d5de73749dbe76db7611a (patch)
tree348487f6793990154e1e7aeeb10fe4e6c6ef9bf5
parente3050bd87ec873bc4ac1dc21c42c7abd02c3b408 (diff)
fsck: move FORCEFSCK/FASTBOOT logic to fsck_all
Avoid global variables, and make things clearer. Signed-off-by: Tom Gundersen <teg@jklm.no>
-rw-r--r--functions6
-rwxr-xr-xrc.sysinit29
2 files changed, 18 insertions, 17 deletions
diff --git a/functions b/functions
index 0b7fd8d..747e42d 100644
--- a/functions
+++ b/functions
@@ -428,6 +428,12 @@ NETFS="nfs,nfs4,smbfs,cifs,codafs,ncpfs,shfs,fuse,fuseblk,glusterfs,davfs,fuse.g
# Check local filesystems
fsck_all() {
+ [[ -f /forcefsck ]] || in_array forcefsck $(< /proc/cmdline) && FORCEFSCK="-f"
+
+ if [[ ! -n $FORCEFSCK ]] && { [[ -f /fastboot ]] || in_array fastboot $(< /proc/cmdline); }; then
+ return
+ fi
+
if [[ -e /run/initramfs/root-fsck ]]; then
IGNORE_MOUNTED="-M"
fi
diff --git a/rc.sysinit b/rc.sysinit
index 8fa4270..0876d05 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -176,24 +176,19 @@ if [[ -f /etc/crypttab && $CS ]] && grep -q ^[^#] /etc/crypttab; then
fi
# Check filesystems
-[[ -f /forcefsck ]] || in_array forcefsck $(< /proc/cmdline) && FORCEFSCK="-f"
-declare -r FORCEFSCK
-
-if [[ -n $FORCEFSCK ]] || { [[ ! -f /fastboot ]] && ! in_array fastboot $(< /proc/cmdline); }; then
- run_hook sysinit_prefsck
- if [[ -x $(type -P fsck) ]]; then
- stat_busy "Checking Filesystems"
- fsck_all >|"${FSCK_OUT:-/dev/stdout}" 2>|"${FSCK_ERR:-/dev/stdout}"
- declare -r fsckret=$?
- (( fsckret <= 1 )) && stat_done || stat_fail
- else
- declare -r fsckret=0
- fi
- run_hook sysinit_postfsck
-
- # Single-user login and/or automatic reboot if needed
- fsck_reboot $fsckret
+run_hook sysinit_prefsck
+if [[ -x $(type -P fsck) ]]; then
+ stat_busy "Checking Filesystems"
+ fsck_all >|"${FSCK_OUT:-/dev/stdout}" 2>|"${FSCK_ERR:-/dev/stdout}"
+ declare -r fsckret=$?
+ (( fsckret <= 1 )) && stat_done || stat_fail
+else
+ declare -r fsckret=0
fi
+run_hook sysinit_postfsck
+
+# Single-user login and/or automatic reboot if needed
+fsck_reboot $fsckret
status "Remounting Root" \
mount -o remount /