mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
_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:
committed by
hch@lst.de
parent
dfdb145fbc
commit
08ea701634
@@ -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
|
||||
;;
|
||||
|
||||
Reference in New Issue
Block a user