summaryrefslogtreecommitdiff
path: root/fs/bcachefs/btree_update_leaf.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/bcachefs/btree_update_leaf.c')
-rw-r--r--fs/bcachefs/btree_update_leaf.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/bcachefs/btree_update_leaf.c b/fs/bcachefs/btree_update_leaf.c
index 007aa5ef4091..208d023e44a4 100644
--- a/fs/bcachefs/btree_update_leaf.c
+++ b/fs/bcachefs/btree_update_leaf.c
@@ -6,6 +6,7 @@
#include "btree_iter.h"
#include "btree_locking.h"
#include "debug.h"
+#include "error.h"
#include "extents.h"
#include "journal.h"
#include "keylist.h"
@@ -301,11 +302,16 @@ int __bch2_btree_insert_at(struct btree_insert *trans)
int ret;
trans_for_each_entry(trans, i) {
+ const char *invalid;
+
BUG_ON(i->iter->level);
BUG_ON(bkey_cmp(bkey_start_pos(&i->k->k), i->iter->pos));
- BUG_ON(debug_check_bkeys(c) &&
- bch2_bkey_invalid(c, i->iter->btree_id,
- bkey_i_to_s_c(i->k)));
+
+ invalid = bch2_bkey_invalid(c, i->iter->btree_id,
+ bkey_i_to_s_c(i->k));
+ if (bch2_fs_bug_on(invalid, c, "updating btree with invalid key: %s",
+ invalid))
+ return -EINVAL;
}
bubble_sort(trans->entries, trans->nr, btree_trans_cmp);