From f34d69cbbcdde9fa973e8c3ddb7fa3e9b17c7305 Mon Sep 17 00:00:00 2001 From: Jaroslav Barton Date: Fri, 4 Sep 2009 11:09:32 +0200 Subject: [PATCH] add reiserfs specific _check_reiserfs_filesystem function The _check_generic_filesystem function doesn't start reiserfsck correctly. Reiserfsck waits for user answer (user must write Yes, but question is not visible). This specific function runs reiserfsck with --yes parameter to awoid waiting for answer. --- common.rc | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 47 insertions(+), 0 deletions(-) diff --git a/common.rc b/common.rc index da5f99e..8b990ba 100644 --- a/common.rc +++ b/common.rc @@ -911,6 +911,50 @@ _check_extN_filesystem() return 0 } +_check_reiserfs_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 + + reiserfsck --yes $device >$tmp.fsck 2>&1 + if [ $? -ne 0 ] + then + echo "_check_reiserfs_filesystem: filesystem on $device is inconsistent (see $seq.full)" + + echo "_check_reiserfs_filesystem: filesystem on $device is inconsistent" >>$here/$seq.full + echo "*** reiserfsck output ***" >>$here/$seq.full + cat $tmp.fsck >>$here/$seq.full + echo "*** end reiserfsck 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() @@ -1082,6 +1126,9 @@ _check_test_fs() ext2|ext3|ext4) _check_extN_filesystem $TEST_DEV ;; + reiserfs) + _check_reiserfs_filesystem $TEST_DEV + ;; *) _check_generic_filesystem $TEST_DEV ;; -- 1.6.2.5