Lines Matching refs:cblock
618 static void set_dirty(struct cache *cache, dm_cblock_t cblock) in set_dirty() argument
620 if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) { in set_dirty()
622 policy_set_dirty(cache->policy, cblock); in set_dirty()
630 static void force_set_dirty(struct cache *cache, dm_cblock_t cblock) in force_set_dirty() argument
632 if (!test_and_set_bit(from_cblock(cblock), cache->dirty_bitset)) in force_set_dirty()
634 policy_set_dirty(cache->policy, cblock); in force_set_dirty()
637 static void force_clear_dirty(struct cache *cache, dm_cblock_t cblock) in force_clear_dirty() argument
639 if (test_and_clear_bit(from_cblock(cblock), cache->dirty_bitset)) { in force_clear_dirty()
644 policy_clear_dirty(cache->policy, cblock); in force_clear_dirty()
730 dm_cblock_t cblock) in remap_to_cache() argument
733 sector_t block = from_cblock(cblock); in remap_to_cache()
771 dm_oblock_t oblock, dm_cblock_t cblock) in remap_to_cache_dirty() argument
774 remap_to_cache(cache, bio, cblock); in remap_to_cache_dirty()
776 set_dirty(cache, cblock); in remap_to_cache_dirty()
834 dm_oblock_t oblock, dm_cblock_t cblock) in remap_to_origin_and_cache() argument
847 remap_to_cache(cache, bio, cblock); in remap_to_origin_and_cache()
1110 c_region.sector = from_cblock(mg->op->cblock) * cache->sectors_per_block; in copy()
1155 remap_to_cache(mg->cache, bio, mg->op->cblock); in overwrite()
1179 dm_cblock_t cblock = op->cblock; in mg_complete() local
1191 force_set_dirty(cache, cblock); in mg_complete()
1199 force_clear_dirty(cache, cblock); in mg_complete()
1209 force_clear_dirty(cache, cblock); in mg_complete()
1216 force_clear_dirty(cache, cblock); in mg_complete()
1251 r = dm_cache_insert_mapping(cache->cmd, op->cblock, op->oblock); in mg_update_metadata()
1264 r = dm_cache_remove_mapping(cache->cmd, op->cblock); in mg_update_metadata()
1352 if ((!is_policy_promote && !is_dirty(cache, op->cblock)) || in mg_full_copy()
1484 static int invalidate_cblock(struct cache *cache, dm_cblock_t cblock) in invalidate_cblock() argument
1488 r = policy_invalidate_mapping(cache->policy, cblock); in invalidate_cblock()
1490 r = dm_cache_remove_mapping(cache->cmd, cblock); in invalidate_cblock()
1564 static int invalidate_start(struct cache *cache, dm_cblock_t cblock, in invalidate_start() argument
1575 mg->invalidate_cblock = cblock; in invalidate_start()
1623 dm_cblock_t cblock; in map_bio() local
1644 r = policy_lookup_with_work(cache->policy, block, &cblock, data_dir, true, &op); in map_bio()
1659 r = policy_lookup(cache->policy, block, &cblock, data_dir, false, &background_queued); in map_bio()
1703 invalidate_start(cache, cblock, block, bio); in map_bio()
1708 !is_dirty(cache, cblock)) { in map_bio()
1709 remap_to_origin_and_cache(cache, bio, block, cblock); in map_bio()
1712 remap_to_cache_dirty(cache, bio, block, cblock); in map_bio()
2813 static int load_mapping(void *context, dm_oblock_t oblock, dm_cblock_t cblock, in load_mapping() argument
2819 set_bit(from_cblock(cblock), cache->dirty_bitset); in load_mapping()
2822 clear_bit(from_cblock(cblock), cache->dirty_bitset); in load_mapping()
2824 return policy_load_mapping(cache->policy, oblock, cblock, dirty, hint, hint_valid); in load_mapping()
2827 static int load_filtered_mapping(void *context, dm_oblock_t oblock, dm_cblock_t cblock, in load_filtered_mapping() argument
2835 cache_device_name(cache), from_cblock(cblock)); in load_filtered_mapping()
2838 set_bit(from_cblock(cblock), cache->invalid_bitset); in load_filtered_mapping()
2842 return load_mapping(context, oblock, cblock, dirty, hint, hint_valid); in load_filtered_mapping()