Commit b564513c authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet
Browse files

bcachefs: fix bch2_bkey_print_bfloat



was popping an assertion in the eytzinger code

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 5bd95a37
Loading
Loading
Loading
Loading
+52 −48
Original line number Diff line number Diff line
@@ -1774,7 +1774,7 @@ int bch2_bkey_print_bfloat(struct btree *b, struct bkey_packed *k,
	struct bkey_packed *l, *r, *p;
	struct bkey uk, up;
	char buf1[200], buf2[200];
	unsigned j;
	unsigned j, inorder;

	if (!size)
		return 0;
@@ -1782,10 +1782,14 @@ int bch2_bkey_print_bfloat(struct btree *b, struct bkey_packed *k,
	if (!bset_has_ro_aux_tree(t))
		goto out;

	j = __inorder_to_eytzinger1(bkey_to_cacheline(b, t, k), t->size, t->extra);
	if (j &&
	    j < t->size &&
	    k == tree_to_bkey(b, t, j))
	inorder = bkey_to_cacheline(b, t, k);
	if (!inorder || inorder >= t->size)
		goto out;

	j = __inorder_to_eytzinger1(inorder, t->size, t->extra);
	if (k != tree_to_bkey(b, t, j))
		goto out;

	switch (bkey_float(b, t, j)->exponent) {
	case BFLOAT_FAILED_UNPACKED:
		uk = bkey_unpack_key(b, k);