summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/md/bcache/bkey_methods.c4
-rw-r--r--drivers/md/bcache/bkey_methods.h2
-rw-r--r--drivers/md/bcache/bset.c3
-rw-r--r--drivers/md/bcache/btree.c4
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];