diff options
Diffstat (limited to 'libbcache/extents.c')
-rw-r--r-- | libbcache/extents.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/libbcache/extents.c b/libbcache/extents.c index 76b55f6..4b422fb 100644 --- a/libbcache/extents.c +++ b/libbcache/extents.c @@ -322,9 +322,7 @@ static bool should_drop_ptr(const struct bch_fs *c, struct bkey_s_c_extent e, const struct bch_extent_ptr *ptr) { - struct bch_dev *ca = c->devs[ptr->dev]; - - return ptr_stale(ca, ptr); + return ptr->cached && ptr_stale(c->devs[ptr->dev], ptr); } static void bch_extent_drop_stale(struct bch_fs *c, struct bkey_s_extent e) @@ -2153,7 +2151,7 @@ void bch_extent_pick_ptr_avoiding(struct bch_fs *c, struct bkey_s_c k, extent_for_each_ptr_crc(e, ptr, crc) { struct bch_dev *ca = c->devs[ptr->dev]; - if (ptr_stale(ca, ptr)) + if (ptr->cached && ptr_stale(ca, ptr)) continue; if (ca->mi.state == BCH_MEMBER_STATE_FAILED) |