diff options
author | Johannes Thumshirn <johannes.thumshirn@wdc.com> | 2024-10-07 13:52:48 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2024-11-11 14:34:15 +0100 |
commit | 9fde8a67b9786f31cbc77c23b0e468d259ce82d1 (patch) | |
tree | c11d30bb97b1b4c622d78ac8ceaad56ffce03218 /.cocciconfig | |
parent | 5e72aabc1fffe9d713276974b0533d10354d0a13 (diff) | |
download | lwn-9fde8a67b9786f31cbc77c23b0e468d259ce82d1.tar.gz lwn-9fde8a67b9786f31cbc77c23b0e468d259ce82d1.zip |
btrfs: scrub: skip initial RST lookup errors
Performing the initial extent sector read on a RAID stripe-tree backed
filesystem with pre-allocated extents will cause the RAID stripe-tree
lookup code to return ENODATA, as pre-allocated extents do not have any
on-disk bytes and thus no RAID stripe-tree entries.
But the current scrub read code marks these extents as errors, because
the lookup fails.
If btrfs_map_block() returns -ENODATA, it means that the call to
btrfs_get_raid_extent_offset() returned -ENODATA, because there is no
entry for the corresponding range in the RAID stripe-tree. But as this
range is in the extent tree it means we've hit a pre-allocated extent. In
this case, don't mark the sector in the stripe's error bitmaps as faulty
and carry on to the next.
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to '.cocciconfig')
0 files changed, 0 insertions, 0 deletions