summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/chardev.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-04-18 22:11:15 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-05-21 20:14:26 -0400
commit9fa4a8a3bdb14c1a36ff439643e00ca416e04b66 (patch)
tree767a537e8779ee853e71d1fbafe8d45724c95b03 /fs/bcachefs/chardev.c
parentbcachefs: recalc_capacity() no longer depends on io_ref (diff)
downloadlinux-9fa4a8a3bdb14c1a36ff439643e00ca416e04b66.tar.gz
linux-9fa4a8a3bdb14c1a36ff439643e00ca416e04b66.zip
bcachefs: for_each_online_member_rcu()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/chardev.c')
-rw-r--r--fs/bcachefs/chardev.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/bcachefs/chardev.c b/fs/bcachefs/chardev.c
index 5891b3a1e61c..4066946b26bc 100644
--- a/fs/bcachefs/chardev.c
+++ b/fs/bcachefs/chardev.c
@@ -613,11 +613,13 @@ static long bch2_ioctl_disk_get_idx(struct bch_fs *c,
if (!dev)
return -EINVAL;
- for_each_online_member(c, ca)
+ rcu_read_lock();
+ for_each_online_member_rcu(c, ca)
if (ca->dev == dev) {
- percpu_ref_put(&ca->io_ref[READ]);
+ rcu_read_unlock();
return ca->dev_idx;
}
+ rcu_read_unlock();
return -BCH_ERR_ENOENT_dev_idx_not_found;
}