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 <[email protected]>
> ---
>  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

Reply via email to