]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: scrub: fix a wrong error type when metadata bytenr mismatches
authorQu Wenruo <wqu@suse.com>
Mon, 5 May 2025 09:26:18 +0000 (18:56 +0930)
committerDavid Sterba <dsterba@suse.com>
Thu, 15 May 2025 12:30:55 +0000 (14:30 +0200)
When the bytenr doesn't match for a metadata tree block, we will report
it as an csum error, which is incorrect and should be reported as a
metadata error instead.

Fixes: a3ddbaebc7c9 ("btrfs: scrub: introduce a helper to verify one metadata block")
Signed-off-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/scrub.c

index 7da3745b5a8e259274c7c236c265ec3339aafc60..907f44d7698a4b580d2dd54821411ab0ed30ae0a 100644 (file)
@@ -611,7 +611,7 @@ static void scrub_verify_one_metadata(struct scrub_stripe *stripe, int sector_nr
        memcpy(on_disk_csum, header->csum, fs_info->csum_size);
 
        if (logical != btrfs_stack_header_bytenr(header)) {
-               bitmap_set(&stripe->csum_error_bitmap, sector_nr, sectors_per_tree);
+               bitmap_set(&stripe->meta_error_bitmap, sector_nr, sectors_per_tree);
                bitmap_set(&stripe->error_bitmap, sector_nr, sectors_per_tree);
                btrfs_warn_rl(fs_info,
                "tree block %llu mirror %u has bad bytenr, has %llu want %llu",