bcachefs: kill bch2_extent_has_device()
authorKent Overstreet <kent.overstreet@gmail.com>
Sat, 16 Nov 2019 01:40:15 +0000 (20:40 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:32 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/ec.c
fs/bcachefs/extents.h
fs/bcachefs/journal.c
fs/bcachefs/journal_io.c

index b24f867520c3a318fb766edd1d22db1d6724342b..654823a6da74716098f93a48e4b30d58d64fa450 100644 (file)
@@ -777,7 +777,6 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
        struct btree_iter *iter;
        struct bkey_s_c k;
        struct bkey_s_extent e;
-       struct bch_extent_ptr *ptr;
        struct bkey_on_stack sk;
        int ret = 0, dev, idx;
 
@@ -791,6 +790,8 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
        while ((k = bch2_btree_iter_peek(iter)).k &&
               !(ret = bkey_err(k)) &&
               bkey_cmp(bkey_start_pos(k.k), pos->p) < 0) {
+               struct bch_extent_ptr *ptr, *ec_ptr = NULL;
+
                if (extent_has_stripe_ptr(k, s->key.k.p.offset)) {
                        bch2_btree_iter_next(iter);
                        continue;
@@ -810,14 +811,14 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
                bkey_reassemble(sk.k, k);
                e = bkey_i_to_s_extent(sk.k);
 
-               extent_for_each_ptr(e, ptr)
-                       if (ptr->dev != dev)
+               extent_for_each_ptr(e, ptr) {
+                       if (ptr->dev == dev)
+                               ec_ptr = ptr;
+                       else
                                ptr->cached = true;
+               }
 
-               ptr = (void *) bch2_extent_has_device(e.c, dev);
-               BUG_ON(!ptr);
-
-               extent_stripe_ptr_add(e, s, ptr, idx);
+               extent_stripe_ptr_add(e, s, ec_ptr, idx);
 
                bch2_trans_update(&trans, iter, sk.k);
 
index cc7ee9067b50a7ee69bc65f7d053d1f9b60a614d..f334b6f763e343f0734dae0e12bbaa9377d7b3de 100644 (file)
@@ -447,9 +447,6 @@ void bch2_insert_fixup_extent(struct btree_trans *,
 void bch2_bkey_mark_replicas_cached(struct bch_fs *, struct bkey_s,
                                    unsigned, unsigned);
 
-const struct bch_extent_ptr *
-bch2_extent_has_device(struct bkey_s_c_extent, unsigned);
-
 unsigned bch2_extent_is_compressed(struct bkey_s_c);
 
 bool bch2_bkey_matches_ptr(struct bch_fs *, struct bkey_s_c,
index 0261c6bbfa929d67cfc86a61cd9072bc2652b2f3..26a8ff38991dd98fdefb27e7d9ae69f3a93f8689 100644 (file)
@@ -944,7 +944,7 @@ static bool bch2_journal_writing_to_device(struct journal *j, unsigned dev_idx)
        w = j->buf + !state.idx;
 
        ret = state.prev_buf_unwritten &&
-               bch2_extent_has_device(bkey_i_to_s_c_extent(&w->key), dev_idx);
+               bch2_bkey_has_device(bkey_i_to_s_c(&w->key), dev_idx);
        spin_unlock(&j->lock);
 
        return ret;
index 2531379e67c69b466e7b9e0228098a89ca592e51..244e3faa6b168c168c93f7d84deccb7768be4007 100644 (file)
@@ -1097,7 +1097,7 @@ void bch2_journal_write(struct closure *cl)
 
        for_each_rw_member(ca, c, i)
                if (journal_flushes_device(ca) &&
-                   !bch2_extent_has_device(bkey_i_to_s_c_extent(&w->key), i)) {
+                   !bch2_bkey_has_device(bkey_i_to_s_c(&w->key), i)) {
                        percpu_ref_get(&ca->io_ref);
 
                        bio = ca->journal.bio;