diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-06 13:52:36 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2025-07-06 14:48:40 -0400 |
commit | ec23efce867a316f2f82df37fc5efd84bbdc7020 (patch) | |
tree | da62ed067ebb785351fa707c277096d1f180176d /libbcachefs/debug.c | |
parent | 60ec05df840012cdf9a6c384c96cb70ed402687f (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.c | 11 |
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; |