]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: KEY_TYPE_error now counts towards i_sectors
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 29 Sep 2023 19:49:16 +0000 (15:49 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:10:16 +0000 (17:10 -0400)
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>
fs/bcachefs/extents.h

index db1863165d62cbaef959d4f0cdaee8525ef6f312..978ae5e7e8b18c99f1021fbab2bc5f7c24abaa1b 100644 (file)
@@ -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;