[arch-projects] [initscripts] [PATCH 08/20] functions/rc.sysinit: Refactor fsck-redirection to prevent breakage

Kurt J. Bosch kjb-temp-2009 at alpenjodel.de
Sun Jul 10 12:56:56 EDT 2011


$FSCK_OUT/$FSCK_ERR might not be set when:
* unset in some custom sysinit_prefsck hook
* calling fsck() from a shutdown hook
---
 functions  |    2 +-
 rc.sysinit |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/functions b/functions
index fd18694..202db30 100644
--- a/functions
+++ b/functions
@@ -365,7 +365,7 @@ NETFS="nonfs,nonfs4,nosmbfs,nocifs,nocodafs,noncpfs,nosysfs,noshfs,nofuse,nofuse
 
 # Check local filesystems
 fsck_all() {
-	fsck -A -T -C$FSCK_FD -a -t "$NETFS,noopts=_netdev" $FORCEFSCK >|$FSCK_OUT 2>|$FSCK_ERR
+	fsck -A -T -C$FSCK_FD -a -t "$NETFS,noopts=_netdev" $FORCEFSCK
 	return $?
 }
 
diff --git a/rc.sysinit b/rc.sysinit
index f64c9ad..5814007 100755
--- a/rc.sysinit
+++ b/rc.sysinit
@@ -174,8 +174,8 @@ if [[ -f /etc/crypttab && $CS ]] && grep -q ^[^#] /etc/crypttab; then
 fi
 
 # Check filesystems
-FSCK_OUT=/dev/stdout
-FSCK_ERR=/dev/stdout
+FSCK_OUT=
+FSCK_ERR=
 FSCK_FD=
 FORCEFSCK=
 [[ -f /forcefsck ]] || is_in_array forcefsck $(< /proc/cmdline) && FORCEFSCK="-- -f"
@@ -183,7 +183,7 @@ declare -r FORCEFSCK
 run_hook sysinit_prefsck
 if [[ -x $(type -P fsck) ]]; then
 	stat_busy "Checking Filesystems"
-		fsck_all
+		fsck_all >|${FSCK_OUT:-/dev/stdout} 2>|${FSCK_ERR:-/dev/stdout}
 	declare -r fsckret=$?
 	(( fsckret <= 1 )) && stat_done || stat_fail
 else
-- 
1.7.1



More information about the arch-projects mailing list