From: Yang Xu Date: Tue, 19 Jul 2022 08:31:13 +0000 (+0800) Subject: xfs: test xfs_db whether still can get corrupted field value X-Git-Tag: v2022.07.31~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b994a3bc4395a4ae485cb3fb9e4e78d1c4a60271;p=xfstests-dev.git xfs: test xfs_db whether still can get corrupted field value This is a regression test that xfs_db code doesn't clean up the LIBXFS_READBUF_SALVAGE call sites in set_cur so that we can't use the return value directly and scraping it out later. Signed-off-by: Yang Xu Reviewed-by: Darrick J. Wong Reviewed-by: Zorro Lang Signed-off-by: Zorro Lang --- diff --git a/tests/xfs/533 b/tests/xfs/533 new file mode 100755 index 00000000..afbdadac --- /dev/null +++ b/tests/xfs/533 @@ -0,0 +1,34 @@ +#! /bin/bash +# SPDX-License-Identifier: GPL-2.0 +# Copyright (c) 2022 FUJITSU LIMITED. All rights reserved. +# +# FS QA Test 533 +# +# Regression test for xfsprogs commit +# f4afdcb0ad11 ("xfs_db: clean up the salvage read callsites in set_cur()") +# +# This case test xfs_db whether can get the new magicnum field value even we +# just have corrupted this field value. +# + +. ./common/preamble +_begin_fstest auto quick db + +# real QA test starts here +_supported_fs xfs +_fixed_by_git_commit xfsprogs f4afdcb0ad11 \ + "xfs_db: clean up the salvage read callsites in set_cur()" +#skip fs check because invalid superblock 1 +_require_scratch_nocheck + +_scratch_mkfs_xfs >>$seqres.full 2>&1 + +# write the bad magicnum field value(0) to the superblock 1 +_scratch_xfs_set_metadata_field "magicnum" "0" "sb 1" + +#Even magicnum field has been corrupted, we still can read this field value +_scratch_xfs_get_metadata_field "magicnum" "sb 1" + +# success, all done +status=0 +exit diff --git a/tests/xfs/533.out b/tests/xfs/533.out new file mode 100644 index 00000000..7deb78a3 --- /dev/null +++ b/tests/xfs/533.out @@ -0,0 +1,5 @@ +QA output created by 533 +Allowing write of corrupted data with good CRC +magicnum = 0 +bad magic number +0