From 08ea70163402512aad45f97f897a39a6c3b1791d Mon Sep 17 00:00:00 2001 From: Jaroslav Barton Date: Wed, 16 Sep 2009 09:55:59 -0300 Subject: [PATCH] _check_generic_filesystem support for fsck parameters _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 file changed, 17 insertions(+), 53 deletions(-) diff --git a/common.rc b/common.rc index da5f99e64..761170d5f 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 ;; -- 2.50.1