On Tue, Mar 11, 2025 at 04:04:29PM +0800, Chao Yu wrote:
> _check_generic_filesystem() will fail the test once it detects
> corruption, let's introduce _check_f2fs_filesystem() to just check
> filesystem w/ --dry-run option, and return the error number, then
> let caller to decide whether the corruption is as expected or not.
>
> Cc: Jaegeuk Kim <[email protected]>
> Signed-off-by: Chao Yu <[email protected]>
> ---
> v3:
> - introduce _check_f2fs_filesystem() to dry run on f2fs image
> common/rc | 46 ++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 46 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index 23b642f4..00883eb7 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -3519,6 +3519,46 @@ _check_generic_filesystem()
> return 0
> }
>
> +_check_f2fs_filesystem()
> +{
> + local device=$1
> +
> + # If type is set, we're mounted
> + local type=`_fs_type $device`
> + local ok=1
> +
> + if [ "$type" = "$FSTYP" ]
This's f2fs check function, so $FSTYP can be "f2fs" directly.
> + then
> + # mounted ...
> + local mountpoint=`_umount_or_remount_ro $device`
> + fi
> +
> + FSCK_OPTIONS="--dry-run"
> + $F2FS_FSCK_PROG $FSCK_OPTIONS $device >>$seqres.full 2>&1
FSCK_OPTIONS looks useless.
> + if [ $? -ne 0 ]
> + then
> + ok=0
> + fi
We generally output nothing if no corruption:
$F2FS_FSCK_PROG --dry-run $device >$tmp.fsck.f2fs 2>&1
if [ $? -ne 0 ];then
_log_err "_check_f2fs_filesystem: filesystem on $device is inconsistent"
echo "*** fsck.f2fs output ***" >>$seqres.full
cat $tmp.fsck.f2fs >>$seqres.full
echo "*** end fsck.f2fs output" >>$seqres.full
ok=0
fi
rm -f $tmp.fsck.f2fs
> +
> + if [ $ok -eq 0 ]
> + then
> + echo "*** mount output ***" >>$seqres.full
> + _mount >>$seqres.full
> + echo "*** end mount output" >>$seqres.full
> + elif [ "$type" = "$FSTYP" ]
This's f2fs check function, so $FSTYP can be "f2fs" directly.
Thanks,
Zorro
> + then
> + # was mounted ...
> + _mount_or_remount_rw "$MOUNT_OPTIONS" $device $mountpoint
> + ok=$?
> + fi
> +
> + if [ $ok -eq 0 ]; then
> + return 1
> + fi
> +
> + return 0
> +}
> +
> # Filter the knowen errors the UDF Verifier reports.
> _udf_test_known_error_filter()
> {
> @@ -3623,6 +3663,9 @@ _check_test_fs()
> ubifs)
> # there is no fsck program for ubifs yet
> ;;
> + f2fs)
> + _check_f2fs_filesystem $TEST_DEV
> + ;;
> *)
> _check_generic_filesystem $TEST_DEV
> ;;
> @@ -3679,6 +3722,9 @@ _check_scratch_fs()
> ubifs)
> # there is no fsck program for ubifs yet
> ;;
> + f2fs)
> + _check_f2fs_filesystem $device
> + ;;
> *)
> _check_generic_filesystem $device
> ;;
> --
> 2.48.1
>
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel