bcachefs: pass bch_dev to read_from_stale_dirty_pointer()
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 1 May 2024 07:58:13 +0000 (03:58 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 8 May 2024 21:29:23 +0000 (17:29 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/io_read.c

index 0107b2fb4d3331a8d38c23334a80579f03f7d998..91260d3dbf503743393a9d64736372e877a52294 100644 (file)
@@ -758,11 +758,11 @@ err:
 }
 
 static noinline void read_from_stale_dirty_pointer(struct btree_trans *trans,
+                                                  struct bch_dev *ca,
                                                   struct bkey_s_c k,
                                                   struct bch_extent_ptr ptr)
 {
        struct bch_fs *c = trans->c;
-       struct bch_dev *ca = bch2_dev_bkey_exists(c, ptr.dev);
        struct btree_iter iter;
        struct printbuf buf = PRINTBUF;
        int ret;
@@ -842,7 +842,7 @@ retry_pick:
        if ((flags & BCH_READ_IN_RETRY) &&
            !pick.ptr.cached &&
            unlikely(dev_ptr_stale(ca, &pick.ptr))) {
-               read_from_stale_dirty_pointer(trans, k, pick.ptr);
+               read_from_stale_dirty_pointer(trans, ca, k, pick.ptr);
                bch2_mark_io_failure(failed, &pick);
                goto retry_pick;
        }