bcachefs: Convert to bch2_dev_tryget_noerror()
authorKent Overstreet <kent.overstreet@linux.dev>
Fri, 3 May 2024 21:48:23 +0000 (17:48 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:22 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_foreground.c
fs/bcachefs/chardev.c

index 92cafde165c0c2e1dc4b0738dca1aa9305075b9d..f54d908683147fbafef84b953325a025ea1952b8 100644 (file)
@@ -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;
 
index ed1fe771a4266a2343952d74f86f44b247dd150b..9e54323f0f5fce6a9e10fa252a2ec16f81ec3154 100644 (file)
@@ -32,12 +32,7 @@ static struct bch_dev *bch2_device_lookup(struct bch_fs *c, u64 dev,
                if (dev >= c->sb.nr_devices)
                        return ERR_PTR(-EINVAL);
 
-               rcu_read_lock();
-               ca = rcu_dereference(c->devs[dev]);
-               if (ca)
-                       bch2_dev_get(ca);
-               rcu_read_unlock();
-
+               ca = bch2_dev_tryget_noerror(c, dev);
                if (!ca)
                        return ERR_PTR(-EINVAL);
        } else {