#! /bin/bash # SPDX-License-Identifier: GPL-2.0-or-later # Copyright (c) 2022 Oracle. All Rights Reserved. # # FS QA Test No. 738 # # Populate a XFS filesystem and fuzz the attr mappings of every xattr type. # Do not fix the filesystem, to test metadata verifiers. # . ./common/preamble _begin_fstest dangerous_fuzzers dangerous_scrub dangerous_norepair _register_cleanup "_cleanup" BUS # Import common functions. . ./common/filter . ./common/populate . ./common/fuzzy # real QA test starts here _supported_fs xfs _require_scratch_xfs_fuzz_fields echo "Format and populate" _scratch_populate_cached nofill > $seqres.full 2>&1 _scratch_xfs_set_xattr_fuzz_types # Now fuzz the block maps of each xattr type. for attrtype in "${SCRATCH_XFS_XATTR_FUZZ_TYPES[@]}"; do echo "Fuzz block map for ${attrtype}" | tee -a $seqres.full # Restore a correct copy of the filesystem before we start a round of # fuzzing. This avoids corruption errors from xfs_db when # _scratch_xfs_fuzz_metadata probes the xattr block fields. __scratch_xfs_fuzz_mdrestore _scratch_mount inum=$(stat -c '%i' $SCRATCH_MNT/ATTR.FMT_${attrtype}) _scratch_unmount _scratch_xfs_fuzz_metadata 'a*.bmx' 'none' "inode ${inum}" >> $seqres.full echo "Done fuzzing attr map ${attrtype}" done # success, all done status=0 exit