[PATCH] _check_generic_filesistem support for fsck parameters

Jaroslav Barton jbarton at redhat.com
Wed Sep 16 01:24:05 CDT 2009


_check_generic_filesystem now support fsck parameters. Fsck parameters
can be passed by FSCK_OPTIONS environmental variable. Default values
will be used if FSCK_OPTIONS is missing or empty (same mechanism as
MOUNT_OPTIONS and MKFS_OPTIONS).

_check_extN_filesystem function is no longer needed, extN filesystem are
properly handled by default values in _check_generic_filesystem.
---
 common.rc |   70 ++++++++++++++----------------------------------------------
 1 files changed, 17 insertions(+), 53 deletions(-)

diff --git a/common.rc b/common.rc
index da5f99e..761170d 100644
--- a/common.rc
+++ b/common.rc
@@ -91,9 +91,25 @@ _mkfs_opts()
     esac
 }
 
+_fsck_opts()
+{
+    case $FSTYP in
+    ext2|ext3|ext4)
+	export FSCK_OPTIONS="-nf"
+	;;
+    reiserfs)
+	export FSCK_OPTIONS="--yes"
+	;;
+    *)
+	export FSCK_OPTIONS="-n"
+	;;
+    esac
+}
+
 [ -z "$FSTYP" ] && FSTYP=xfs
 [ -z "$MOUNT_OPTIONS" ] && _mount_opts
 [ -z "$MKFS_OPTIONS" ] && _mkfs_opts
+[ -z "$FSCK_OPTIONS" ] && _fsck_opts
 
 
 # we need common.config
@@ -835,7 +851,7 @@ _check_generic_filesystem()
         mountpoint=`_umount_or_remount_ro $device`
     fi
 
-    fsck -t $FSTYP -n $device >$tmp.fsck 2>&1
+    fsck -t $FSTYP $FSCK_OPTIONS $device >$tmp.fsck 2>&1
     if [ $? -ne 0 ]
     then
         echo "_check_generic_filesystem: filesystem on $device is inconsistent (see $seq.full)"
@@ -865,52 +881,6 @@ _check_generic_filesystem()
     return 0
 }
 
-# Check an ext2/3/4 filesystem
-#
-_check_extN_filesystem()
-{
-    device=$1
-
-    # If type is set, we're mounted
-    type=`_fs_type $device`
-    ok=1
-
-    if [ "$type" = "$FSTYP" ]
-    then
-        # mounted ...
-        mountpoint=`_umount_or_remount_ro $device`
-    fi
-
-    e2fsck -nf $device >$tmp.fsck 2>&1
-    if [ $? -ne 0 ]
-    then
-        echo "_check_extN_filesystem: filesystem on $device is inconsistent (see $seq.full)"
-
-        echo "_check_extN filesystem: filesystem on $device is inconsistent" >>$here/$seq.full
-        echo "*** e2fsck output ***"                          >>$here/$seq.full
-        cat $tmp.fsck                                         >>$here/$seq.full
-        echo "*** end e2fsck output"                          >>$here/$seq.full
-
-        ok=0
-    fi
-    rm -f $tmp.fsck
-
-    if [ $ok -eq 0 ]
-    then
-        echo "*** mount output ***"                           >>$here/$seq.full
-        _mount                                                >>$here/$seq.full
-        echo "*** end mount output"                           >>$here/$seq.full
-    elif [ "$type" = "$FSTYP" ]
-    then
-	# was mounted ...
-	_mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint
-	ok=$?
-    fi
-
-    [ $ok -eq 0 ] && exit 1
-    return 0
-}
-
 # run xfs_check and friends on a FS.
 
 _check_xfs_filesystem()
@@ -1079,9 +1049,6 @@ _check_test_fs()
     udf)
 	# do nothing for now
 	;;
-    ext2|ext3|ext4)
-	_check_extN_filesystem $TEST_DEV
-	;;
     *)
 	_check_generic_filesystem $TEST_DEV
 	;;
@@ -1108,9 +1075,6 @@ _check_scratch_fs()
     nfs*)
 	# Don't know how to check an NFS filesystem, yet.
 	;;
-    ext2|ext3|ext4)
-	_check_extN_filesystem $SCRATCH_DEV
-	;;
     *)
 	_check_generic_filesystem $SCRATCH_DEV
 	;;
-- 
1.6.2.5




More information about the xfs mailing list