summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/extents.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-09-04 17:50:20 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-09-09 09:41:46 -0400
commit52df04f03994217aa5f98eb83255e85ee60b5e29 (patch)
tree1599a8c61dea864fb5660f436669ee66a17ed541 /fs/bcachefs/extents.c
parentbcachefs: Simplify bch2_bkey_drop_ptrs() (diff)
downloadlinux-52df04f03994217aa5f98eb83255e85ee60b5e29.tar.gz
linux-52df04f03994217aa5f98eb83255e85ee60b5e29.zip
bcachefs: More BCH_SB_MEMBER_INVALID support
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/extents.c')
-rw-r--r--fs/bcachefs/extents.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c
index 1a0c714c13e2..324303bf4353 100644
--- a/fs/bcachefs/extents.c
+++ b/fs/bcachefs/extents.c
@@ -787,6 +787,11 @@ void bch2_bkey_drop_ptr_noerror(struct bkey_s k, struct bch_extent_ptr *ptr)
union bch_extent_entry *entry = to_entry(ptr), *next;
bool drop_crc = true;
+ if (k.k->type == KEY_TYPE_stripe) {
+ ptr->dev = BCH_SB_MEMBER_INVALID;
+ return;
+ }
+
EBUG_ON(ptr < &ptrs.start->ptr ||
ptr >= &ptrs.end->ptr);
EBUG_ON(ptr->type != 1 << BCH_EXTENT_ENTRY_ptr);