Commit d3a2b5d8 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: Ensure we only allocate one EC bucket per writepoint

Signed-off-by: default avatarKent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 33e33961
...@@ -578,18 +578,22 @@ open_bucket_add_buckets(struct bch_fs *c, ...@@ -578,18 +578,22 @@ open_bucket_add_buckets(struct bch_fs *c,
__clear_bit(ob->ptr.dev, devs.d); __clear_bit(ob->ptr.dev, devs.d);
if (erasure_code) { if (erasure_code) {
get_buckets_from_writepoint(c, ptrs, wp, &devs, if (!ec_open_bucket(c, ptrs)) {
nr_replicas, nr_effective, get_buckets_from_writepoint(c, ptrs, wp, &devs,
have_cache, flags, true); nr_replicas, nr_effective,
if (*nr_effective >= nr_replicas) have_cache, flags, true);
return 0; if (*nr_effective >= nr_replicas)
return 0;
}
bucket_alloc_from_stripe(c, ptrs, wp, &devs, if (!ec_open_bucket(c, ptrs)) {
target, erasure_code, bucket_alloc_from_stripe(c, ptrs, wp, &devs,
nr_replicas, nr_effective, target, erasure_code,
have_cache, flags); nr_replicas, nr_effective,
if (*nr_effective >= nr_replicas) have_cache, flags);
return 0; if (*nr_effective >= nr_replicas)
return 0;
}
} }
get_buckets_from_writepoint(c, ptrs, wp, &devs, get_buckets_from_writepoint(c, ptrs, wp, &devs,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment