bcachefs: uninline set_btree_iter_dontneed()
authorKent Overstreet <kent.overstreet@linux.dev>
Thu, 25 Apr 2024 06:20:20 +0000 (02:20 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:21 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_background.c
fs/bcachefs/alloc_foreground.c
fs/bcachefs/btree_iter.c
fs/bcachefs/btree_iter.h
fs/bcachefs/btree_key_cache.c

index 63bcba995ca2d0b9d400b5bd82d59045d49011bb..37e8446b30395961eb997a6a4a8fd0424d67f41f 100644 (file)
@@ -1303,7 +1303,7 @@ static noinline_for_stack int bch2_check_discard_freespace_key(struct btree_tran
                goto delete;
 out:
 fsck_err:
-       set_btree_iter_dontneed(&alloc_iter);
+       bch2_set_btree_iter_dontneed(&alloc_iter);
        bch2_trans_iter_exit(trans, &alloc_iter);
        printbuf_exit(&buf);
        return ret;
index 847000a7ead2be1259a565e0966bff7cad08a575..438e00c8316bd39288cad71143d141d1f2b5dde3 100644 (file)
@@ -363,10 +363,10 @@ static struct open_bucket *try_alloc_bucket(struct btree_trans *trans, struct bc
 
        ob = __try_alloc_bucket(c, ca, b, watermark, a, s, cl);
        if (!ob)
-               set_btree_iter_dontneed(&iter);
+               bch2_set_btree_iter_dontneed(&iter);
 err:
        if (iter.path)
-               set_btree_iter_dontneed(&iter);
+               bch2_set_btree_iter_dontneed(&iter);
        bch2_trans_iter_exit(trans, &iter);
        printbuf_exit(&buf);
        return ob;
@@ -433,7 +433,7 @@ again:
 
                ob = __try_alloc_bucket(trans->c, ca, k.k->p.offset, watermark, a, s, cl);
 next:
-               set_btree_iter_dontneed(&citer);
+               bch2_set_btree_iter_dontneed(&citer);
                bch2_trans_iter_exit(trans, &citer);
                if (ob)
                        break;
@@ -488,7 +488,7 @@ again:
                        ob = try_alloc_bucket(trans, ca, watermark,
                                              alloc_cursor, s, k, cl);
                        if (ob) {
-                               set_btree_iter_dontneed(&iter);
+                               bch2_set_btree_iter_dontneed(&iter);
                                break;
                        }
                }
index ea70e9efb91cdaba203a31e6d8eb3c935fabbc76..7f0eb5d396a234f7f968e35295f134123c744d48 100644 (file)
@@ -1822,6 +1822,19 @@ hole:
        return (struct bkey_s_c) { u, NULL };
 }
 
+
+void bch2_set_btree_iter_dontneed(struct btree_iter *iter)
+{
+       struct btree_trans *trans = iter->trans;
+
+       if (!iter->path || trans->restarted)
+               return;
+
+       struct btree_path *path = btree_iter_path(trans, iter);
+       path->preserve          = false;
+       if (path->ref == 1)
+               path->should_be_locked  = false;
+}
 /* Btree iterators: */
 
 int __must_check
index 430b0d4848744b4a11426f79477a6ef4eff82052..eab2a25bdc7a26df3abf288436f59f4c4f20ef1c 100644 (file)
@@ -508,18 +508,7 @@ void bch2_trans_node_iter_init(struct btree_trans *, struct btree_iter *,
                               unsigned, unsigned, unsigned);
 void bch2_trans_copy_iter(struct btree_iter *, struct btree_iter *);
 
-static inline void set_btree_iter_dontneed(struct btree_iter *iter)
-{
-       struct btree_trans *trans = iter->trans;
-
-       if (!iter->path || trans->restarted)
-               return;
-
-       struct btree_path *path = btree_iter_path(trans, iter);
-       path->preserve          = false;
-       if (path->ref == 1)
-               path->should_be_locked  = false;
-}
+void bch2_set_btree_iter_dontneed(struct btree_iter *);
 
 void *__bch2_trans_kmalloc(struct btree_trans *, size_t);
 
index e2eca7dab70e6eb2debc06740459f4fd653003f8..69e5f08db374cc80b4dc31d3039cfd2922362d3a 100644 (file)
@@ -456,7 +456,7 @@ static int btree_key_cache_fill(struct btree_trans *trans,
        bch2_btree_node_unlock_write(trans, ck_path, ck_path->l[0].b);
 
        /* We're not likely to need this iterator again: */
-       set_btree_iter_dontneed(&iter);
+       bch2_set_btree_iter_dontneed(&iter);
 err:
        bch2_trans_iter_exit(trans, &iter);
        return ret;