summaryrefslogtreecommitdiff
path: root/libbcache/extents.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbcache/extents.c')
-rw-r--r--libbcache/extents.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libbcache/extents.c b/libbcache/extents.c
index 76b55f64..4b422fb1 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)