bcachefs: Kill bkey ops->debugcheck method
authorKent Overstreet <kent.overstreet@gmail.com>
Sat, 20 Mar 2021 03:19:05 +0000 (23:19 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:56 +0000 (17:08 -0400)
This code used to be used for running some assertions on alloc info at
runtime, but it long predates fsck and hasn't been good for much in
ages - we can delete it now.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bkey_methods.c
fs/bcachefs/bkey_methods.h
fs/bcachefs/btree_gc.c
fs/bcachefs/extents.c
fs/bcachefs/extents.h

index 79e249f..878befb 100644 (file)
@@ -149,7 +149,6 @@ const char *bch2_bkey_in_btree_node(struct btree *b, struct bkey_s_c k)
 
 void bch2_bkey_debugcheck(struct bch_fs *c, struct btree *b, struct bkey_s_c k)
 {
-       const struct bkey_ops *ops = &bch2_bkey_ops[k.k->type];
        const char *invalid;
 
        BUG_ON(!k.k->u64s);
@@ -161,11 +160,7 @@ void bch2_bkey_debugcheck(struct bch_fs *c, struct btree *b, struct bkey_s_c k)
 
                bch2_bkey_val_to_text(&PBUF(buf), c, k);
                bch2_fs_inconsistent(c, "invalid bkey %s: %s", buf, invalid);
-               return;
        }
-
-       if (ops->key_debugcheck)
-               ops->key_debugcheck(c, k);
 }
 
 void bch2_bpos_to_text(struct printbuf *out, struct bpos pos)
index 0bca725..bfa6f11 100644 (file)
@@ -26,7 +26,6 @@ struct bkey_ops {
        /* Returns reason for being invalid if invalid, else NULL: */
        const char *    (*key_invalid)(const struct bch_fs *,
                                       struct bkey_s_c);
-       void            (*key_debugcheck)(struct bch_fs *, struct bkey_s_c);
        void            (*val_to_text)(struct printbuf *, struct bch_fs *,
                                       struct bkey_s_c);
        void            (*swab)(struct bkey_s);
index a303cd3..f75562b 100644 (file)
@@ -389,8 +389,6 @@ static int btree_gc_mark_node(struct bch_fs *c, struct btree *b, u8 *max_stale,
        bkey_init(&prev.k->k);
 
        while ((k = bch2_btree_node_iter_peek_unpack(&iter, b, &unpacked)).k) {
-               bch2_bkey_debugcheck(c, b, k);
-
                ret = bch2_gc_mark_key(c, b->c.btree_id, b->c.level, false,
                                       &k, max_stale, initial);
                if (ret)
@@ -491,8 +489,6 @@ static int bch2_gc_btree_init_recurse(struct bch_fs *c, struct btree *b,
        bkey_init(&prev.k->k);
 
        while ((k = bch2_btree_and_journal_iter_peek(&iter)).k) {
-               bch2_bkey_debugcheck(c, b, k);
-
                BUG_ON(bkey_cmp(k.k->p, b->data->min_key) < 0);
                BUG_ON(bkey_cmp(k.k->p, b->data->max_key) > 0);
 
index 8cf45b7..76b2459 100644 (file)
@@ -163,46 +163,6 @@ const char *bch2_btree_ptr_invalid(const struct bch_fs *c, struct bkey_s_c k)
        return bch2_bkey_ptrs_invalid(c, k);
 }
 
-void bch2_btree_ptr_debugcheck(struct bch_fs *c, struct bkey_s_c k)
-{
-       struct bkey_ptrs_c ptrs = bch2_bkey_ptrs_c(k);
-       const struct bch_extent_ptr *ptr;
-       const char *err;
-       char buf[160];
-       struct bucket_mark mark;
-       struct bch_dev *ca;
-
-       if (!test_bit(BCH_FS_INITIAL_GC_DONE, &c->flags))
-               return;
-
-       if (!percpu_down_read_trylock(&c->mark_lock))
-               return;
-
-       bkey_for_each_ptr(ptrs, ptr) {
-               ca = bch_dev_bkey_exists(c, ptr->dev);
-
-               mark = ptr_bucket_mark(ca, ptr);
-
-               err = "stale";
-               if (gen_after(mark.gen, ptr->gen))
-                       goto err;
-
-               err = "inconsistent";
-               if (mark.data_type != BCH_DATA_btree ||
-                   mark.dirty_sectors < c->opts.btree_node_size)
-                       goto err;
-       }
-out:
-       percpu_up_read(&c->mark_lock);
-       return;
-err:
-       bch2_fs_inconsistent(c, "%s btree pointer %s: bucket %zi gen %i mark %08x",
-               err, (bch2_bkey_val_to_text(&PBUF(buf), c, k), buf),
-               PTR_BUCKET_NR(ca, ptr),
-               mark.gen, (unsigned) mark.v.counter);
-       goto out;
-}
-
 void bch2_btree_ptr_to_text(struct printbuf *out, struct bch_fs *c,
                            struct bkey_s_c k)
 {
@@ -246,49 +206,6 @@ const char *bch2_extent_invalid(const struct bch_fs *c, struct bkey_s_c k)
        return bch2_bkey_ptrs_invalid(c, k);
 }
 
-void bch2_extent_debugcheck(struct bch_fs *c, struct bkey_s_c k)
-{
-       struct bkey_s_c_extent e = bkey_s_c_to_extent(k);
-       const union bch_extent_entry *entry;
-       struct extent_ptr_decoded p;
-       char buf[160];
-
-       if (!test_bit(JOURNAL_REPLAY_DONE, &c->journal.flags) ||
-           !test_bit(BCH_FS_INITIAL_GC_DONE, &c->flags))
-               return;
-
-       if (!percpu_down_read_trylock(&c->mark_lock))
-               return;
-
-       extent_for_each_ptr_decode(e, p, entry) {
-               struct bch_dev *ca      = bch_dev_bkey_exists(c, p.ptr.dev);
-               struct bucket_mark mark = ptr_bucket_mark(ca, &p.ptr);
-               unsigned stale          = gen_after(mark.gen, p.ptr.gen);
-               unsigned disk_sectors   = ptr_disk_sectors(p);
-               unsigned mark_sectors   = p.ptr.cached
-                       ? mark.cached_sectors
-                       : mark.dirty_sectors;
-
-               bch2_fs_inconsistent_on(stale && !p.ptr.cached, c,
-                       "stale dirty pointer (ptr gen %u bucket %u",
-                       p.ptr.gen, mark.gen);
-
-               bch2_fs_inconsistent_on(stale > 96, c,
-                       "key too stale: %i", stale);
-
-               bch2_fs_inconsistent_on(!stale &&
-                       (mark.data_type != BCH_DATA_user ||
-                        mark_sectors < disk_sectors), c,
-                       "extent pointer not marked: %s:\n"
-                       "type %u sectors %u < %u",
-                       (bch2_bkey_val_to_text(&PBUF(buf), c, e.s_c), buf),
-                       mark.data_type,
-                       mark_sectors, disk_sectors);
-       }
-
-       percpu_up_read(&c->mark_lock);
-}
-
 void bch2_extent_to_text(struct printbuf *out, struct bch_fs *c,
                         struct bkey_s_c k)
 {
index 3988315..2ee50a2 100644 (file)
@@ -368,7 +368,6 @@ int bch2_bkey_pick_read_device(struct bch_fs *, struct bkey_s_c,
 /* KEY_TYPE_btree_ptr: */
 
 const char *bch2_btree_ptr_invalid(const struct bch_fs *, struct bkey_s_c);
-void bch2_btree_ptr_debugcheck(struct bch_fs *, struct bkey_s_c);
 void bch2_btree_ptr_to_text(struct printbuf *, struct bch_fs *,
                            struct bkey_s_c);
 
@@ -379,14 +378,12 @@ void bch2_btree_ptr_v2_compat(enum btree_id, unsigned, unsigned,
 
 #define bch2_bkey_ops_btree_ptr (struct bkey_ops) {            \
        .key_invalid    = bch2_btree_ptr_invalid,               \
-       .key_debugcheck = bch2_btree_ptr_debugcheck,            \
        .val_to_text    = bch2_btree_ptr_to_text,               \
        .swab           = bch2_ptr_swab,                        \
 }
 
 #define bch2_bkey_ops_btree_ptr_v2 (struct bkey_ops) {         \
        .key_invalid    = bch2_btree_ptr_invalid,               \
-       .key_debugcheck = bch2_btree_ptr_debugcheck,            \
        .val_to_text    = bch2_btree_ptr_v2_to_text,            \
        .swab           = bch2_ptr_swab,                        \
        .compat         = bch2_btree_ptr_v2_compat,             \
@@ -395,14 +392,12 @@ void bch2_btree_ptr_v2_compat(enum btree_id, unsigned, unsigned,
 /* KEY_TYPE_extent: */
 
 const char *bch2_extent_invalid(const struct bch_fs *, struct bkey_s_c);
-void bch2_extent_debugcheck(struct bch_fs *, struct bkey_s_c);
 void bch2_extent_to_text(struct printbuf *, struct bch_fs *, struct bkey_s_c);
 enum merge_result bch2_extent_merge(struct bch_fs *,
                                    struct bkey_s, struct bkey_s);
 
 #define bch2_bkey_ops_extent (struct bkey_ops) {               \
        .key_invalid    = bch2_extent_invalid,                  \
-       .key_debugcheck = bch2_extent_debugcheck,               \
        .val_to_text    = bch2_extent_to_text,                  \
        .swab           = bch2_ptr_swab,                        \
        .key_normalize  = bch2_extent_normalize,                \