diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-03 17:48:23 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-05-08 17:29:22 -0400 |
commit | 4cd91e2f87a6b1f28806fc0082a9b31ce23d28b8 (patch) | |
tree | 170aa4e9e2e77714fd4e8d9da990407c7581aaee /fs/bcachefs/alloc_foreground.c | |
parent | b07eb8252fb1455cc54bb306e253e193a7a39228 (diff) | |
download | linux-4cd91e2f87a6b1f28806fc0082a9b31ce23d28b8.tar.gz linux-4cd91e2f87a6b1f28806fc0082a9b31ce23d28b8.tar.bz2 linux-4cd91e2f87a6b1f28806fc0082a9b31ce23d28b8.zip |
bcachefs: Convert to bch2_dev_tryget_noerror()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/alloc_foreground.c')
-rw-r--r-- | fs/bcachefs/alloc_foreground.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/bcachefs/alloc_foreground.c b/fs/bcachefs/alloc_foreground.c index 92cafde165c0..f54d90868314 100644 --- a/fs/bcachefs/alloc_foreground.c +++ b/fs/bcachefs/alloc_foreground.c @@ -717,25 +717,16 @@ int bch2_bucket_alloc_set_trans(struct btree_trans *trans, struct bch_fs *c = trans->c; struct dev_alloc_list devs_sorted = bch2_dev_alloc_list(c, stripe, devs_may_alloc); - unsigned dev; - struct bch_dev *ca; int ret = -BCH_ERR_insufficient_devices; - unsigned i; BUG_ON(*nr_effective >= nr_replicas); - for (i = 0; i < devs_sorted.nr; i++) { + for (unsigned i = 0; i < devs_sorted.nr; i++) { struct bch_dev_usage usage; struct open_bucket *ob; - dev = devs_sorted.devs[i]; - - rcu_read_lock(); - ca = rcu_dereference(c->devs[dev]); - if (ca) - bch2_dev_get(ca); - rcu_read_unlock(); - + unsigned dev = devs_sorted.devs[i]; + struct bch_dev *ca = bch2_dev_tryget_noerror(c, dev); if (!ca) continue; |