_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.
This commit is contained in:
Jaroslav Barton
2009-09-16 09:55:59 -03:00
committed by hch@lst.de
parent dfdb145fbc
commit 08ea701634
+17 -53
View File
@@ -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
;;