summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs/alloc_foreground.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-03-09 10:18:09 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-22 17:09:56 -0400
commitfba053d2aaca8f9a4486e865452d80245a8cc215 (patch)
tree33b64ada1518141ca3053949166bc7b21d91616a /fs/bcachefs/alloc_foreground.c
parent10d9f7d2853d5e4c6f21a0dc96f6e98c2d0828e7 (diff)
downloadlinux-fba053d2aaca8f9a4486e865452d80245a8cc215.tar.gz
linux-fba053d2aaca8f9a4486e865452d80245a8cc215.tar.bz2
linux-fba053d2aaca8f9a4486e865452d80245a8cc215.zip
bcachefs: Second layer of refcounting for new stripes
This will be used for move writes, which will be waiting until the stripe is created to do the index update. They need to prevent the stripe from being reclaimed until their index update is done, so we need another refcount that just keeps the stripe open. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> # Conflicts: # fs/bcachefs/ec.c # fs/bcachefs/io.c
Diffstat (limited to 'fs/bcachefs/alloc_foreground.c')
-rw-r--r--fs/bcachefs/alloc_foreground.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/alloc_foreground.c b/fs/bcachefs/alloc_foreground.c
index 4621ef7f1e50..7c81189bcd62 100644
--- a/fs/bcachefs/alloc_foreground.c
+++ b/fs/bcachefs/alloc_foreground.c
@@ -97,7 +97,7 @@ void __bch2_open_bucket_put(struct bch_fs *c, struct open_bucket *ob)
struct bch_dev *ca = bch_dev_bkey_exists(c, ob->dev);
if (ob->ec) {
- ec_stripe_new_put(c, ob->ec);
+ ec_stripe_new_put(c, ob->ec, STRIPE_REF_io);
return;
}
@@ -799,7 +799,7 @@ got_bucket:
ob->ec_idx = ec_idx;
ob->ec = h->s;
- ec_stripe_new_get(h->s);
+ ec_stripe_new_get(h->s, STRIPE_REF_io);
ret = add_new_bucket(c, ptrs, devs_may_alloc,
nr_replicas, nr_effective,