summaryrefslogtreecommitdiff
path: root/libbcachefs/debug.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-07-06 13:52:36 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-07-06 14:48:40 -0400
commitec23efce867a316f2f82df37fc5efd84bbdc7020 (patch)
treeda62ed067ebb785351fa707c277096d1f180176d /libbcachefs/debug.c
parent60ec05df840012cdf9a6c384c96cb70ed402687f (diff)
Update bcachefs sources to b47c5ba55d59 bcachefs: silence userspace build warning
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/debug.c')
-rw-r--r--libbcachefs/debug.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/libbcachefs/debug.c b/libbcachefs/debug.c
index 901f643e..07c2a0f7 100644
--- a/libbcachefs/debug.c
+++ b/libbcachefs/debug.c
@@ -153,8 +153,6 @@ void __bch2_btree_verify(struct bch_fs *c, struct btree *b)
c->verify_data = __bch2_btree_node_mem_alloc(c);
if (!c->verify_data)
goto out;
-
- list_del_init(&c->verify_data->list);
}
BUG_ON(b->nsets != 1);
@@ -586,6 +584,8 @@ static ssize_t bch2_btree_transactions_read(struct file *file, char __user *buf,
i->ubuf = buf;
i->size = size;
i->ret = 0;
+
+ int srcu_idx = srcu_read_lock(&c->btree_trans_barrier);
restart:
seqmutex_lock(&c->btree_trans_lock);
list_sort(&c->btree_trans_list, list_ptr_order_cmp);
@@ -599,6 +599,11 @@ restart:
if (!closure_get_not_zero(&trans->ref))
continue;
+ if (!trans->srcu_held) {
+ closure_put(&trans->ref);
+ continue;
+ }
+
u32 seq = seqmutex_unlock(&c->btree_trans_lock);
bch2_btree_trans_to_text(&i->buf, trans);
@@ -620,6 +625,8 @@ restart:
}
seqmutex_unlock(&c->btree_trans_lock);
unlocked:
+ srcu_read_unlock(&c->btree_trans_barrier, srcu_idx);
+
if (i->buf.allocation_failure)
ret = -ENOMEM;