diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2015-05-09 21:40:50 -0700 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2017-01-18 20:26:54 -0900 |
commit | b64843a70a96d2a83a193c56936483707541a15e (patch) | |
tree | 9fc45b66281843e767f0cf324651b02b5dd56946 | |
parent | e70206fae53686bfaffc54bef1b8b14c1c3d5efd (diff) |
bcache: Drop bch_check_keys()
bch_btree_node_iter_next_check() is now able to check everything
bch_check_keys() did.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | drivers/md/bcache/bset.c | 45 | ||||
-rw-r--r-- | drivers/md/bcache/bset.h | 8 | ||||
-rw-r--r-- | drivers/md/bcache/btree.c | 3 |
3 files changed, 7 insertions, 49 deletions
diff --git a/drivers/md/bcache/bset.c b/drivers/md/bcache/bset.c index 277467c610f6..b2b937c21b2c 100644 --- a/drivers/md/bcache/bset.c +++ b/drivers/md/bcache/bset.c @@ -87,47 +87,16 @@ void __bch_count_data_verify(struct btree_keys *b, int oldsize) } } -void __bch_check_keys(struct btree_keys *b, const char *fmt, ...) +static void bch_btree_node_iter_next_check(struct btree_node_iter *iter, + struct bkey *k) { - struct bkey *k, *p = NULL; - struct btree_node_iter iter; - - for_each_btree_node_key(b, k, &iter) { - if (p && - (b->ops->is_extents - ? bkey_cmp(p->p, bkey_start_pos(k)) > 0 - : !bkey_cmp(p->p, k->p))) { - va_list args; - char buf1[80], buf2[80]; - - bch_dump_bucket(b); - - va_start(args, fmt); - vprintk(fmt, args); - va_end(args); - - bch_bkey_to_text(buf1, sizeof(buf1), p); - bch_bkey_to_text(buf2, sizeof(buf2), k); - panic("bch_check_keys dup/overlapping:\n%s\n%s\n", - buf1, buf2); - } - - p = k; - } -} - -static void bch_btree_node_iter_next_check(struct btree_node_iter *iter) -{ - struct btree_keys *b = iter->b; - struct bkey *k = iter->data->k, *next = bkey_next(k); - - if (next < iter->data->end && - keys_out_of_order(k, next, b->ops->is_extents)) { + if (!bch_btree_node_iter_end(iter) && + keys_out_of_order(k, iter->data->k, iter->is_extents)) { char buf1[80], buf2[80]; - bch_dump_bucket(b); + bch_dump_bucket(iter->b); bch_bkey_to_text(buf1, sizeof(buf1), k); - bch_bkey_to_text(buf2, sizeof(buf2), next); + bch_bkey_to_text(buf2, sizeof(buf2), iter->data->k); panic("out of order/overlapping:\n%s\n%s\n", buf1, buf2); } } @@ -1163,8 +1132,8 @@ struct bkey *bch_btree_node_iter_next_all(struct btree_node_iter *iter) struct bkey *ret = bch_btree_node_iter_peek_all(iter); if (ret) { - bch_btree_node_iter_next_check(iter); bch_btree_node_iter_advance(iter); + bch_btree_node_iter_next_check(iter, ret); } return ret; diff --git a/drivers/md/bcache/bset.h b/drivers/md/bcache/bset.h index 7a14b53a9ccc..a8f89de3493a 100644 --- a/drivers/md/bcache/bset.h +++ b/drivers/md/bcache/bset.h @@ -541,7 +541,6 @@ static inline void verify_nr_live_u64s(struct btree_keys *b) s64 __bch_count_data(struct btree_keys *); void __bch_count_data_verify(struct btree_keys *, int); -void __bch_check_keys(struct btree_keys *, const char *, ...); void bch_dump_bucket(struct btree_keys *); void bch_btree_node_iter_verify(struct btree_keys *, struct btree_node_iter *); @@ -549,7 +548,6 @@ void bch_btree_node_iter_verify(struct btree_keys *, struct btree_node_iter *); static inline s64 __bch_count_data(struct btree_keys *b) { return -1; } static inline void __bch_count_data_verify(struct btree_keys *b, int oldsize ) {} -static inline void __bch_check_keys(struct btree_keys *b, const char *fmt, ...) {} static inline void bch_dump_bucket(struct btree_keys *b) {} static inline void bch_btree_node_iter_verify(struct btree_keys *b, struct btree_node_iter *iter) {} @@ -569,10 +567,4 @@ static inline void bch_count_data_verify(struct btree_keys *b, int oldsize) __bch_count_data_verify(b, oldsize); } -#define bch_check_keys(b, ...) \ -do { \ - if (btree_keys_expensive_checks(b)) \ - __bch_check_keys(b, __VA_ARGS__); \ -} while (0) - #endif diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c index b613d9fcd07c..249356b3f8bc 100644 --- a/drivers/md/bcache/btree.c +++ b/drivers/md/bcache/btree.c @@ -494,7 +494,6 @@ static void do_btree_node_write(struct closure *cl) BUG_ON(b->written + blocks_to_write > btree_blocks(b->c)); BUG_ON(b->written && !i->u64s); BUG_ON(btree_bset_first(b)->seq != i->seq); - bch_check_keys(&b->keys, "writing"); cancel_delayed_work(&b->work); @@ -1677,8 +1676,6 @@ static bool btree_insert_key(struct btree_iter *iter, struct btree *b, newsize = bch_count_data(&b->keys); BUG_ON(newsize != -1 && newsize < oldsize); - bch_check_keys(&b->keys, "%u for %s", do_insert, - replace ? "replace" : "insert"); trace_bcache_btree_insert_key(b, insert, replace != NULL, do_insert); |