diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2015-04-01 13:09:02 -0700 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2016-10-07 12:33:50 -0800 |
commit | 9d08e75c6b2f993826f0588c1ab170b2f9e050b4 (patch) | |
tree | 12bd3bdfb61ddf2d3dabc6db03437373326c57fe | |
parent | 85abd3a75af94b0ecaabfe95b206e9b50d2fb1e3 (diff) |
bcache: btree_node_type(), new assertions
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | drivers/md/bcache/bkey_methods.c | 4 | ||||
-rw-r--r-- | drivers/md/bcache/bkey_methods.h | 2 | ||||
-rw-r--r-- | drivers/md/bcache/bset.c | 3 | ||||
-rw-r--r-- | drivers/md/bcache/btree.c | 4 |
4 files changed, 8 insertions, 5 deletions
diff --git a/drivers/md/bcache/bkey_methods.c b/drivers/md/bcache/bkey_methods.c index 8af5e923c9f3..a89d192e7cf0 100644 --- a/drivers/md/bcache/bkey_methods.c +++ b/drivers/md/bcache/bkey_methods.c @@ -45,7 +45,7 @@ bool bkey_invalid(struct cache_set *c, void bkey_debugcheck(struct btree *b, struct bkey_s_c k) { - enum bkey_type type = b->level ? BKEY_TYPE_BTREE : b->btree_id; + enum bkey_type type = btree_node_type(b); const struct bkey_ops *ops = bch_bkey_ops[type]; BUG_ON(!k.k->u64s); @@ -74,7 +74,7 @@ void bkey_debugcheck(struct btree *b, struct bkey_s_c k) void bch_bkey_val_to_text(struct btree *b, char *buf, size_t size, struct bkey_s_c k) { - enum bkey_type type = b->level ? BKEY_TYPE_BTREE : b->btree_id; + enum bkey_type type = btree_node_type(b); const struct bkey_ops *ops = bch_bkey_ops[type]; char *out = buf, *end = buf + size; diff --git a/drivers/md/bcache/bkey_methods.h b/drivers/md/bcache/bkey_methods.h index 2f9b05a5c4d0..e55dacbcf068 100644 --- a/drivers/md/bcache/bkey_methods.h +++ b/drivers/md/bcache/bkey_methods.h @@ -8,6 +8,8 @@ enum bkey_type { BKEY_TYPE_BTREE, }; +#define btree_node_type(_b) ((_b)->level ? BKEY_TYPE_BTREE : (_b)->btree_id) + struct cache_set; struct btree; struct bkey; diff --git a/drivers/md/bcache/bset.c b/drivers/md/bcache/bset.c index fcbfb24bf641..50964d1473ec 100644 --- a/drivers/md/bcache/bset.c +++ b/drivers/md/bcache/bset.c @@ -799,8 +799,11 @@ void bch_bset_insert(struct btree_keys *b, struct bkey_packed packed, *src; BKEY_PADDED(k) tmp; + BUG_ON(insert->k.u64s < BKEY_U64s); + BUG_ON(insert->k.format != KEY_FORMAT_CURRENT); BUG_ON(b->ops->is_extents && (!insert->k.size || bkey_deleted(&insert->k))); + BUG_ON(!b->last_set_unwritten); BUG_ON(where < i->start); BUG_ON(where > bset_bkey_last(i)); diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c index 0669d24efa45..58508e1bbc52 100644 --- a/drivers/md/bcache/btree.c +++ b/drivers/md/bcache/btree.c @@ -291,9 +291,7 @@ static const char *validate_bset(struct btree *b, struct cache *ca, bkey_disassemble(&tup, f, k); - if (bkey_invalid(c, b->level - ? BKEY_TYPE_BTREE - : b->btree_id, + if (bkey_invalid(c, btree_node_type(b), bkey_tup_to_s_c(&tup))) { char buf[160]; |