summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2015-05-09 21:40:50 -0700
committerKent Overstreet <kent.overstreet@gmail.com>2017-01-18 20:26:54 -0900
commitb64843a70a96d2a83a193c56936483707541a15e (patch)
tree9fc45b66281843e767f0cf324651b02b5dd56946
parente70206fae53686bfaffc54bef1b8b14c1c3d5efd (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.c45
-rw-r--r--drivers/md/bcache/bset.h8
-rw-r--r--drivers/md/bcache/btree.c3
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);