bcachefs: bch2_trans_update_ip()
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 28 Apr 2025 15:45:56 +0000 (11:45 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 22 May 2025 00:14:37 +0000 (20:14 -0400)
Allow btree_insert_entry.ip_allocated to be passed in, so we get better
info on where alloc updates are coming from.

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

index c63348c4b874aae4fa6d9a1a6013b4b4b0c283b7..002e3853f8cf6a8d7d040783b35ce5cd822ca5ba 100644 (file)
@@ -484,7 +484,7 @@ struct bkey_i_alloc_v4 *bch2_trans_start_alloc_update(struct btree_trans *trans,
        if (ret)
                return ERR_PTR(ret);
 
-       ret = bch2_trans_update(trans, &iter, &a->k_i, flags);
+       ret = bch2_trans_update_ip(trans, &iter, &a->k_i, flags, _RET_IP_);
        bch2_trans_iter_exit(trans, &iter);
        return unlikely(ret) ? ERR_PTR(ret) : a;
 }
index 2bffd5121c31592c4a0c52f228c81b2b272b6de7..ce83cd037551dca0355368aeea241531b8ff45b5 100644 (file)
@@ -511,8 +511,9 @@ static noinline int bch2_trans_update_get_key_cache(struct btree_trans *trans,
        return 0;
 }
 
-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)
+int __must_check bch2_trans_update_ip(struct btree_trans *trans, struct btree_iter *iter,
+                                     struct bkey_i *k, enum btree_iter_update_trigger_flags flags,
+                                     unsigned long ip)
 {
        kmsan_check_memory(k, bkey_bytes(&k->k));
 
@@ -548,7 +549,7 @@ int __must_check bch2_trans_update(struct btree_trans *trans, struct btree_iter
                path_idx = iter->key_cache_path;
        }
 
-       return bch2_trans_update_by_path(trans, path_idx, k, flags, _RET_IP_);
+       return bch2_trans_update_by_path(trans, path_idx, k, flags, ip);
 }
 
 int bch2_btree_insert_clone_trans(struct btree_trans *trans,
index e674419c299e8bd0c10106f67ce065a8963e5f8f..62d24b081e27fec7e9c694866f4fd4f28a42f928 100644 (file)
@@ -102,8 +102,16 @@ int bch2_trans_update_extent_overwrite(struct btree_trans *, struct btree_iter *
 int bch2_bkey_get_empty_slot(struct btree_trans *, struct btree_iter *,
                             enum btree_id, struct bpos);
 
-int __must_check bch2_trans_update(struct btree_trans *, struct btree_iter *,
-                                  struct bkey_i *, enum btree_iter_update_trigger_flags);
+int __must_check bch2_trans_update_ip(struct btree_trans *, struct btree_iter *,
+                                     struct bkey_i *, enum btree_iter_update_trigger_flags,
+                                     unsigned long);
+
+static inline 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)
+{
+       return bch2_trans_update_ip(trans, iter, k, flags, _THIS_IP_);
+}
 
 struct jset_entry *__bch2_trans_jset_entry_alloc(struct btree_trans *, unsigned);