mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
bcachefs: Convert to bch2_dev_tryget_noerror()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
b07eb8252f
commit
4cd91e2f87
@ -717,25 +717,16 @@ int bch2_bucket_alloc_set_trans(struct btree_trans *trans,
|
|||||||
struct bch_fs *c = trans->c;
|
struct bch_fs *c = trans->c;
|
||||||
struct dev_alloc_list devs_sorted =
|
struct dev_alloc_list devs_sorted =
|
||||||
bch2_dev_alloc_list(c, stripe, devs_may_alloc);
|
bch2_dev_alloc_list(c, stripe, devs_may_alloc);
|
||||||
unsigned dev;
|
|
||||||
struct bch_dev *ca;
|
|
||||||
int ret = -BCH_ERR_insufficient_devices;
|
int ret = -BCH_ERR_insufficient_devices;
|
||||||
unsigned i;
|
|
||||||
|
|
||||||
BUG_ON(*nr_effective >= nr_replicas);
|
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 bch_dev_usage usage;
|
||||||
struct open_bucket *ob;
|
struct open_bucket *ob;
|
||||||
|
|
||||||
dev = devs_sorted.devs[i];
|
unsigned dev = devs_sorted.devs[i];
|
||||||
|
struct bch_dev *ca = bch2_dev_tryget_noerror(c, dev);
|
||||||
rcu_read_lock();
|
|
||||||
ca = rcu_dereference(c->devs[dev]);
|
|
||||||
if (ca)
|
|
||||||
bch2_dev_get(ca);
|
|
||||||
rcu_read_unlock();
|
|
||||||
|
|
||||||
if (!ca)
|
if (!ca)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -32,12 +32,7 @@ static struct bch_dev *bch2_device_lookup(struct bch_fs *c, u64 dev,
|
|||||||
if (dev >= c->sb.nr_devices)
|
if (dev >= c->sb.nr_devices)
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
|
|
||||||
rcu_read_lock();
|
ca = bch2_dev_tryget_noerror(c, dev);
|
||||||
ca = rcu_dereference(c->devs[dev]);
|
|
||||||
if (ca)
|
|
||||||
bch2_dev_get(ca);
|
|
||||||
rcu_read_unlock();
|
|
||||||
|
|
||||||
if (!ca)
|
if (!ca)
|
||||||
return ERR_PTR(-EINVAL);
|
return ERR_PTR(-EINVAL);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user