bcachefs: Finish converting reconstruct_alloc to errors_silent
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 7 Apr 2024 21:05:01 +0000 (17:05 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:18 +0000 (17:29 -0400)
with errors_silent, reconstruct_alloc no longer requires fsck and
fix_errors to work

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_gc.c
fs/bcachefs/recovery.c

index 606e1120ab7cdf5c667aaa7b7d85c998f6c61c6c..130f4a3885b253c23ac6e6b9b457b2dbb64da555 100644 (file)
@@ -1209,9 +1209,7 @@ static int bch2_gc_done(struct bch_fs *c,
 {
        struct bch_dev *ca = NULL;
        struct printbuf buf = PRINTBUF;
-       bool verify = !metadata_only &&
-               !c->opts.reconstruct_alloc &&
-               (!initial || (c->sb.compat & (1ULL << BCH_COMPAT_alloc_info)));
+       bool verify = !metadata_only;
        unsigned i;
        int ret = 0;
 
index 9cf262f1a3cd18980e05fb4e325f8dd36b721b99..d22579a036c74950059be096e02f40edcce70abb 100644 (file)
@@ -65,9 +65,20 @@ static void bch2_reconstruct_alloc(struct bch_fs *c)
        __set_bit_le64(BCH_FSCK_ERR_ptr_to_missing_alloc_key, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_ptr_gen_newer_than_bucket_gen, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_stale_dirty_ptr, ext->errors_silent);
+
+       __set_bit_le64(BCH_FSCK_ERR_dev_usage_buckets_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_dev_usage_sectors_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_dev_usage_fragmented_wrong, ext->errors_silent);
+
+       __set_bit_le64(BCH_FSCK_ERR_fs_usage_btree_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_fs_usage_cached_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_fs_usage_persistent_reserved_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_fs_usage_replicas_wrong, ext->errors_silent);
+
        __set_bit_le64(BCH_FSCK_ERR_alloc_key_data_type_wrong, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_alloc_key_gen_wrong, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_alloc_key_dirty_sectors_wrong, ext->errors_silent);
+       __set_bit_le64(BCH_FSCK_ERR_alloc_key_cached_sectors_wrong, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_alloc_key_stripe_wrong, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_alloc_key_stripe_redundancy_wrong, ext->errors_silent);
        __set_bit_le64(BCH_FSCK_ERR_need_discard_key_wrong, ext->errors_silent);