bcachefs: uninline set_btree_iter_dontneed()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
0af0b963b5
commit
c749541353
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user