From 7d839ccc1a13148d1a41d32fb9be83a0c8d31496 Mon Sep 17 00:00:00 2001 From: Zorro Lang Date: Fri, 28 Oct 2022 23:43:37 +0800 Subject: [PATCH] xfs: new test on xfs with corrupted sb_inopblock There's a known bug fix 392c6de98af1 ("xfs: sanitize sb_inopblock in xfs_mount_validate_sb"). So try to corrupt the sb_inopblock of xfs, to cover this bug. Signed-off-by: Zorro Lang Reviewed-by: Darrick J. Wong --- tests/xfs/555 | 32 ++++++++++++++++++++++++++++++++ tests/xfs/555.out | 6 ++++++ 2 files changed, 38 insertions(+) create mode 100755 tests/xfs/555 create mode 100644 tests/xfs/555.out diff --git a/tests/xfs/555 b/tests/xfs/555 new file mode 100755 index 00000000..a4024501 --- /dev/null +++ b/tests/xfs/555 @@ -0,0 +1,32 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2022 Red Hat, Inc. All Rights Reserved. +# +# FS QA Test 555 +# +# Corrupt xfs sb_inopblock, make sure no crash. This's a test coverage of +# 392c6de98af1 ("xfs: sanitize sb_inopblock in xfs_mount_validate_sb") +# +. ./common/preamble +_begin_fstest auto quick + +# real QA test starts here +_supported_fs xfs +_fixed_by_kernel_commit 392c6de98af1 \ + "xfs: sanitize sb_inopblock in xfs_mount_validate_sb" +_require_scratch + +_scratch_mkfs >>$seqres.full +echo "corrupt inopblock of sb 0" +_scratch_xfs_set_metadata_field "inopblock" "500" "sb 0" >> $seqres.full +echo "try to mount ..." +_try_scratch_mount 2>> $seqres.full && _fail "mount should not succeed!" +echo "no crash or hang" +echo "repair corrupted sb 0" +_scratch_xfs_repair >> $seqres.full 2>&1 +echo "check fs" +_scratch_xfs_repair -n >> $seqres.full 2>&1 || echo "fs isn't fixed!" + +# success, all done +status=0 +exit diff --git a/tests/xfs/555.out b/tests/xfs/555.out new file mode 100644 index 00000000..4f1b01a2 --- /dev/null +++ b/tests/xfs/555.out @@ -0,0 +1,6 @@ +QA output created by 555 +corrupt inopblock of sb 0 +try to mount ... +no crash or hang +repair corrupted sb 0 +check fs -- 2.39.5