| #! /bin/bash |
| # SPDX-License-Identifier: GPL-2.0-or-later |
| # Copyright (c) 2022-2025 Oracle. All Rights Reserved. |
| # |
| # FS QA Test No. 829 |
| # |
| # Populate a XFS filesystem and fuzz every rtrefcountbt record field. |
| # Do not fix the filesystem, to test metadata verifiers. |
| |
| . ./common/preamble |
| _begin_fstest dangerous_fuzzers fuzzers_norepair realtime |
| |
| _register_cleanup "_cleanup" BUS |
| |
| . ./common/filter |
| . ./common/populate |
| . ./common/fuzzy |
| . ./common/reflink |
| |
| _require_realtime |
| _require_scratch_reflink |
| _require_scratch_xfs_fuzz_fields |
| _disable_dmesg_check |
| |
| echo "Format and populate" |
| _scratch_populate_cached nofill > $seqres.full 2>&1 |
| |
| path="$(_scratch_xfs_find_rgbtree_height 'refcnt' 2)" || \ |
| _fail "could not find two-level rtrefcountbt" |
| inode_ver=$(_scratch_xfs_get_metadata_field "core.version" "path -m $path") |
| |
| echo "Fuzz rtrefcountbt recs" |
| _scratch_xfs_fuzz_metadata '' 'none' "path -m $path" "addr u${inode_ver}.rtrefcbt.ptrs[1]" >> $seqres.full |
| echo "Done fuzzing rtrefcountbt recs" |
| |
| # success, all done |
| status=0 |
| exit |