Commit c7495413 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: uninline set_btree_iter_dontneed()

parent 0af0b963
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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;
+4 −4
Original line number Diff line number Diff line
@@ -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 @@ bch2_bucket_alloc_early(struct btree_trans *trans,

		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 @@ static struct open_bucket *bch2_bucket_alloc_freelist(struct btree_trans *trans,
			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;
			}
		}
+13 −0
Original line number Diff line number Diff line
@@ -1822,6 +1822,19 @@ struct bkey_s_c bch2_btree_path_peek_slot(struct btree_path *path, struct bkey *
	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
+1 −12
Original line number Diff line number Diff line
@@ -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);

+1 −1
Original line number Diff line number Diff line
@@ -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;