summaryrefslogtreecommitdiff
path: root/libbcachefs/debug.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-05-31 23:40:21 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-05-31 23:40:21 -0400
commit3457fbde27c15b8937169ee30f1c097018fea024 (patch)
treece8d81e83e71c53c2bb99aa32e3235677e62d0f6 /libbcachefs/debug.c
parent4613023c166e95bd37eef957a82080b2c7625d0d (diff)
Update bcachefs sources to d316ba08b045 bcachefs: Repair code for directory i_size
Diffstat (limited to 'libbcachefs/debug.c')
-rw-r--r--libbcachefs/debug.c28
1 files changed, 14 insertions, 14 deletions
diff --git a/libbcachefs/debug.c b/libbcachefs/debug.c
index 04db3e0e..901f643e 100644
--- a/libbcachefs/debug.c
+++ b/libbcachefs/debug.c
@@ -510,27 +510,27 @@ static ssize_t bch2_cached_btree_nodes_read(struct file *file, char __user *buf,
i->ret = 0;
do {
- struct bucket_table *tbl;
- struct rhash_head *pos;
- struct btree *b;
-
ret = bch2_debugfs_flush_buf(i);
if (ret)
return ret;
- rcu_read_lock();
i->buf.atomic++;
- tbl = rht_dereference_rcu(c->btree_cache.table.tbl,
- &c->btree_cache.table);
- if (i->iter < tbl->size) {
- rht_for_each_entry_rcu(b, pos, tbl, i->iter, hash)
- bch2_cached_btree_node_to_text(&i->buf, c, b);
- i->iter++;
- } else {
- done = true;
+ scoped_guard(rcu) {
+ struct bucket_table *tbl =
+ rht_dereference_rcu(c->btree_cache.table.tbl,
+ &c->btree_cache.table);
+ if (i->iter < tbl->size) {
+ struct rhash_head *pos;
+ struct btree *b;
+
+ rht_for_each_entry_rcu(b, pos, tbl, i->iter, hash)
+ bch2_cached_btree_node_to_text(&i->buf, c, b);
+ i->iter++;
+ } else {
+ done = true;
+ }
}
--i->buf.atomic;
- rcu_read_unlock();
} while (!done);
if (i->buf.allocation_failure)