mbox series

[0/2] btrfs: RST scrub fixes for prealloc

Message ID 20241007115248.16434-1-jth@kernel.org (mailing list archive)
Headers show
Series btrfs: RST scrub fixes for prealloc | expand

Message

Johannes Thumshirn Oct. 7, 2024, 11:52 a.m. UTC
From: Johannes Thumshirn <johannes.thumshirn@wdc.com>

When scrubbing a non-zoned RAID stripe tree filesystem, the RST specific scrub
code finds false positives becuase preallocated extents are not backed by the
stripe-tree and so the lookup failes.

These patches address the issue by a) changing RST lookup failures from
ENOENT to ENODATA and b) skipping ENODATA on RST mapping errors from the scrub
side.

This aproach was suggested by Josef in 
https://lore.kernel.org/linux-btrfs/20240923152705.GB159452@perftesting/

Johannes Thumshirn (2):
  btrfs: return ENODATA in case RST lookup fails
  btrfs: scrub: skip initial RAID stripe-tree lookup errors

 fs/btrfs/raid-stripe-tree.c | 6 +++---
 fs/btrfs/scrub.c            | 6 ++++--
 2 files changed, 7 insertions(+), 5 deletions(-)

Comments

Josef Bacik Oct. 7, 2024, 3:02 p.m. UTC | #1
On Mon, Oct 07, 2024 at 01:52:46PM +0200, Johannes Thumshirn wrote:
> From: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> 
> When scrubbing a non-zoned RAID stripe tree filesystem, the RST specific scrub
> code finds false positives becuase preallocated extents are not backed by the
> stripe-tree and so the lookup failes.
> 
> These patches address the issue by a) changing RST lookup failures from
> ENOENT to ENODATA and b) skipping ENODATA on RST mapping errors from the scrub
> side.
> 
> This aproach was suggested by Josef in 
> https://lore.kernel.org/linux-btrfs/20240923152705.GB159452@perftesting/
> 
> Johannes Thumshirn (2):
>   btrfs: return ENODATA in case RST lookup fails
>   btrfs: scrub: skip initial RAID stripe-tree lookup errors
> 

Reviewed-by: Josef Bacik <josef@toxicpanda.com>

Thanks,

Josef