|
@@ -1432,9 +1432,8 @@ static void process_bio(struct cache *cache, struct prealloc *structs,
|
|
|
dm_oblock_t block = get_bio_block(cache, bio);
|
|
|
struct dm_bio_prison_cell *cell_prealloc, *old_ocell, *new_ocell;
|
|
|
struct policy_result lookup_result;
|
|
|
- bool discarded_block = is_discarded_oblock(cache, block);
|
|
|
bool passthrough = passthrough_mode(&cache->features);
|
|
|
- bool can_migrate = !passthrough && (discarded_block || spare_migration_bandwidth(cache));
|
|
|
+ bool discarded_block, can_migrate;
|
|
|
|
|
|
/*
|
|
|
* Check to see if that block is currently migrating.
|
|
@@ -1446,6 +1445,9 @@ static void process_bio(struct cache *cache, struct prealloc *structs,
|
|
|
if (r > 0)
|
|
|
return;
|
|
|
|
|
|
+ discarded_block = is_discarded_oblock(cache, block);
|
|
|
+ can_migrate = !passthrough && (discarded_block || spare_migration_bandwidth(cache));
|
|
|
+
|
|
|
r = policy_map(cache->policy, block, true, can_migrate, discarded_block,
|
|
|
bio, &lookup_result);
|
|
|
|