]> www.infradead.org Git - users/hch/xfstests-dev.git/commitdiff
_check_generic_filesystem support for fsck parameters
authorJaroslav Barton <jbarton@redhat.com>
Wed, 16 Sep 2009 12:55:59 +0000 (09:55 -0300)
committerhch@lst.de <Christoph Hellwig>
Wed, 16 Sep 2009 12:55:59 +0000 (09:55 -0300)
_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

index da5f99e64f4a9d06aff2b863696f0ec464667f65..761170d5f62d15569308f430aeb1e720a94efb84 100644 (file)
--- 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
        ;;