]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bcachefs: kmsan asserts
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 20 Mar 2025 18:17:53 +0000 (14:17 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 24 Mar 2025 13:50:36 +0000 (09:50 -0400)
Catching these early makes them a lot easier to track down.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_trans_commit.c
fs/bcachefs/btree_update.c
fs/bcachefs/btree_update.h

index d50dc31d0beaf0b877a4db2a2d5a6593a590b8d0..7d7e52ddde02ac3143209a891dd7cbf0b5544f0f 100644 (file)
@@ -164,6 +164,7 @@ bool bch2_btree_bset_insert_key(struct btree_trans *trans,
        EBUG_ON(bpos_gt(insert->k.p, b->data->max_key));
        EBUG_ON(insert->k.u64s > bch2_btree_keys_u64s_remaining(b));
        EBUG_ON(!b->c.level && !bpos_eq(insert->k.p, path->pos));
+       kmsan_check_memory(insert, bkey_bytes(&insert->k));
 
        k = bch2_btree_node_iter_peek_all(node_iter, b);
        if (k && bkey_cmp_left_packed(b, k, &insert->k.p))
index b3e346b5f8d775da30312ec213ceb2620fac9770..bd2eb42edb2418c21df1b85f93bd32151a71294c 100644 (file)
@@ -512,6 +512,8 @@ static noinline int bch2_trans_update_get_key_cache(struct btree_trans *trans,
 int __must_check bch2_trans_update(struct btree_trans *trans, struct btree_iter *iter,
                                   struct bkey_i *k, enum btree_iter_update_trigger_flags flags)
 {
+       kmsan_check_memory(k, bkey_bytes(&k->k));
+
        btree_path_idx_t path_idx = iter->update_path ?: iter->path;
        int ret;
 
index 47d8690f01bfc75f7aaa89710ae97fc85cafa548..d2e1c04353f6bedf12bbc1c6d1a963d962d0b5ea 100644 (file)
@@ -133,6 +133,8 @@ static inline int __must_check bch2_trans_update_buffered(struct btree_trans *tr
                                            enum btree_id btree,
                                            struct bkey_i *k)
 {
+       kmsan_check_memory(k, bkey_bytes(&k->k));
+
        if (unlikely(!btree_type_uses_write_buffer(btree))) {
                int ret = bch2_btree_write_buffer_insert_err(trans, btree, k);
                dump_stack();