On Sat, Mar 17, 2012 at 11:44:27AM +0100, Tom Gundersen wrote:
Avoid global variables, and make things clearer.
Signed-off-by: Tom Gundersen <teg@jklm.no> --- functions | 6 ++++++ rc.sysinit | 29 ++++++++++++----------------- 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 you're trying to make things clearer, I'd probably convert this one into an if statement as well. The use of "||" and "&&" might be a bit confusing if you don't have a closer look here.
+ + if [[ ! -n $FORCEFSCK ]] && { [[ -f /fastboot ]] || in_array fastboot $(< /proc/cmdline); }; then + return
No return value? :) We use the return value of fsck_all() later so it might be worthwhile to explicitly return 0/1 here. Note that moving these checks into fsck_all() will also result in the "Checking Filesystems" being displayed even if the fastboot option is used (just saying, even though you were probably aware of that when writing this patch).
+ 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 / -- 1.7.9.4