#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2017 Oracle, Inc. All Rights Reserved. # # FS QA Test No. 397 # # Populate a XFS filesystem and fuzz every freeindex-format dir block field. # Use xfs_scrub to fix the corruption. # . ./common/preamble _begin_fstest dangerous_fuzzers dangerous_scrub dangerous_online_repair _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 echo "Find freeindex-format dir block" _scratch_mount inum=$(stat -c '%i' $SCRATCH_MNT/S_IFDIR.FMT_NODE) blk_sz=$(_get_block_size $SCRATCH_MNT) _scratch_unmount leaf_offset=$(( (2 ** 36) / blk_sz )) echo "Fuzz freeindex-format dir block" _scratch_xfs_fuzz_metadata '' 'online' "inode ${inum}" "dblock ${leaf_offset}" >> $seqres.full echo "Done fuzzing freeindex-format dir block" # success, all done status=0 exit