summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-09-29 15:49:16 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-18 18:24:50 -0400
commit4979f640f5fda602af5c398fe380142acfe50173 (patch)
tree2caf8b925c71ec762f327b6d5d02b303e2bcbf46
parentf516b1c0c4c86d4d6cdc52806c5bf39dd6bfaf4b (diff)
bcachefs: KEY_TYPE_error now counts towards i_sectors
KEY_TYPE_error is used when all replicas in an extent are marked as failed; it indicates that data was present, but has been lost. So that i_sectors doesn't change when replacing extents with KEY_TYPE_error, we now have to count error keys as allocations - this fixes fsck errors later. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/extents.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/bcachefs/extents.h b/fs/bcachefs/extents.h
index db1863165d62..978ae5e7e8b1 100644
--- a/fs/bcachefs/extents.h
+++ b/fs/bcachefs/extents.h
@@ -520,6 +520,7 @@ static inline bool bkey_extent_is_allocation(const struct bkey *k)
case KEY_TYPE_reflink_v:
case KEY_TYPE_inline_data:
case KEY_TYPE_indirect_inline_data:
+ case KEY_TYPE_error:
return true;
default:
return false;