From: Kent Overstreet Date: Fri, 29 Sep 2023 19:49:16 +0000 (-0400) Subject: bcachefs: KEY_TYPE_error now counts towards i_sectors X-Git-Tag: v6.7-rc1~201^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=be47e0ba4fc92bd065ac0b7ad345913eea1bc6fc;p=thirdparty%2Fkernel%2Flinux.git 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 --- diff --git a/fs/bcachefs/extents.h b/fs/bcachefs/extents.h index db1863165d62c..978ae5e7e8b18 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;