bcachefs: Kill bch2_ec_bucket_written()
authorKent Overstreet <kent.overstreet@linux.dev>
Mon, 6 Mar 2023 04:52:49 +0000 (23:52 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:56 +0000 (17:09 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/alloc_foreground.c
fs/bcachefs/ec.c
fs/bcachefs/ec.h

index 5aab85f1a835b03bb69cc076e42f1e18f2804064..7b048ef99b9777dcbcc0a5389d2e4b415450ae9d 100644 (file)
@@ -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) {
-               bch2_ec_bucket_written(c, ob);
+               ec_stripe_new_put(c, ob->ec);
                return;
        }
 
@@ -838,10 +838,10 @@ got_bucket:
 
        ob->ec_idx      = ec_idx;
        ob->ec          = h->s;
+       ec_stripe_new_get(h->s);
 
        add_new_bucket(c, ptrs, devs_may_alloc,
                       nr_effective, have_cache, flags, ob);
-       atomic_inc(&h->s->pin);
 out_put_head:
        bch2_ec_stripe_head_put(c, h);
        return 0;
index 4a9a9a05058ab65f8e8f277410dabe3d22882ab6..f131a70f282fc63db6a0f4e6713e10c13f6fb810 100644 (file)
@@ -1193,15 +1193,6 @@ void bch2_ec_do_stripe_creates(struct bch_fs *c)
                bch2_write_ref_put(c, BCH_WRITE_REF_stripe_create);
 }
 
-static void ec_stripe_new_put(struct bch_fs *c, struct ec_stripe_new *s)
-{
-       BUG_ON(atomic_read(&s->pin) <= 0);
-       BUG_ON(!s->err && !s->idx);
-
-       if (atomic_dec_and_test(&s->pin))
-               bch2_ec_do_stripe_creates(c);
-}
-
 static void ec_stripe_set_pending(struct bch_fs *c, struct ec_stripe_head *h)
 {
        struct ec_stripe_new *s = h->s;
@@ -1218,14 +1209,6 @@ static void ec_stripe_set_pending(struct bch_fs *c, struct ec_stripe_head *h)
        ec_stripe_new_put(c, s);
 }
 
-/* have a full bucket - hand it off to be erasure coded: */
-void bch2_ec_bucket_written(struct bch_fs *c, struct open_bucket *ob)
-{
-       struct ec_stripe_new *s = ob->ec;
-
-       ec_stripe_new_put(c, s);
-}
-
 void bch2_ec_bucket_cancel(struct bch_fs *c, struct open_bucket *ob)
 {
        struct ec_stripe_new *s = ob->ec;
index 56d1b5e7d79733ada4b36192de92146fd8530da3..d112aea9ec5632f0339532fd39c3e2407fceedc2 100644 (file)
@@ -198,7 +198,6 @@ int bch2_ec_read_extent(struct bch_fs *, struct bch_read_bio *);
 
 void *bch2_writepoint_ec_buf(struct bch_fs *, struct write_point *);
 
-void bch2_ec_bucket_written(struct bch_fs *, struct open_bucket *);
 void bch2_ec_bucket_cancel(struct bch_fs *, struct open_bucket *);
 
 int bch2_ec_stripe_new_alloc(struct bch_fs *, struct ec_stripe_head *);
@@ -213,6 +212,21 @@ void bch2_stripes_heap_del(struct bch_fs *, struct stripe *, size_t);
 void bch2_stripes_heap_insert(struct bch_fs *, struct stripe *, size_t);
 
 void bch2_do_stripe_deletes(struct bch_fs *);
+void bch2_ec_do_stripe_creates(struct bch_fs *);
+
+static inline void ec_stripe_new_get(struct ec_stripe_new *s)
+{
+       atomic_inc(&s->pin);
+}
+
+static inline void ec_stripe_new_put(struct bch_fs *c, struct ec_stripe_new *s)
+{
+       BUG_ON(atomic_read(&s->pin) <= 0);
+       BUG_ON(!s->err && !s->idx);
+
+       if (atomic_dec_and_test(&s->pin))
+               bch2_ec_do_stripe_creates(c);
+}
 
 void bch2_ec_stop_dev(struct bch_fs *, struct bch_dev *);