Lines Matching refs:dzone

1687 	struct dm_zone *dzone, *bzone;  in dmz_load_mapping()  local
1724 dzone = dmz_get(zmd, dzone_id); in dmz_load_mapping()
1725 if (!dzone) { in dmz_load_mapping()
1730 set_bit(DMZ_DATA, &dzone->flags); in dmz_load_mapping()
1731 dzone->chunk = chunk; in dmz_load_mapping()
1732 dmz_get_zone_weight(zmd, dzone); in dmz_load_mapping()
1734 if (dmz_is_cache(dzone)) in dmz_load_mapping()
1735 list_add_tail(&dzone->link, &zmd->map_cache_list); in dmz_load_mapping()
1736 else if (dmz_is_rnd(dzone)) in dmz_load_mapping()
1737 list_add_tail(&dzone->link, &dzone->dev->map_rnd_list); in dmz_load_mapping()
1739 list_add_tail(&dzone->link, &dzone->dev->map_seq_list); in dmz_load_mapping()
1767 bzone->bzone = dzone; in dmz_load_mapping()
1768 dzone->bzone = bzone; in dmz_load_mapping()
1787 dzone = dmz_get(zmd, i); in dmz_load_mapping()
1788 if (!dzone) in dmz_load_mapping()
1790 if (dmz_is_meta(dzone)) in dmz_load_mapping()
1792 if (dmz_is_offline(dzone)) in dmz_load_mapping()
1795 if (dmz_is_cache(dzone)) in dmz_load_mapping()
1797 else if (dmz_is_rnd(dzone)) in dmz_load_mapping()
1798 dzone->dev->nr_rnd++; in dmz_load_mapping()
1800 dzone->dev->nr_seq++; in dmz_load_mapping()
1802 if (dmz_is_data(dzone)) { in dmz_load_mapping()
1808 set_bit(DMZ_DATA, &dzone->flags); in dmz_load_mapping()
1809 dzone->chunk = DMZ_MAP_UNMAPPED; in dmz_load_mapping()
1810 if (dmz_is_cache(dzone)) { in dmz_load_mapping()
1811 list_add_tail(&dzone->link, &zmd->unmap_cache_list); in dmz_load_mapping()
1813 } else if (dmz_is_rnd(dzone)) { in dmz_load_mapping()
1814 list_add_tail(&dzone->link, in dmz_load_mapping()
1815 &dzone->dev->unmap_rnd_list); in dmz_load_mapping()
1816 atomic_inc(&dzone->dev->unmap_nr_rnd); in dmz_load_mapping()
1818 list_add_tail(&dzone->link, &zmd->reserved_seq_zones_list); in dmz_load_mapping()
1819 set_bit(DMZ_RESERVED, &dzone->flags); in dmz_load_mapping()
1821 dzone->dev->nr_seq--; in dmz_load_mapping()
1823 list_add_tail(&dzone->link, in dmz_load_mapping()
1824 &dzone->dev->unmap_seq_list); in dmz_load_mapping()
1825 atomic_inc(&dzone->dev->unmap_nr_seq); in dmz_load_mapping()
1945 struct dm_zone *dzone = NULL; in dmz_get_rnd_zone_for_reclaim() local
1964 dzone = zone->bzone; in dmz_get_rnd_zone_for_reclaim()
1965 if (dmz_is_rnd(dzone) && dzone->dev->dev_idx != idx) in dmz_get_rnd_zone_for_reclaim()
1967 if (!maxw_z || maxw_z->weight < dzone->weight) in dmz_get_rnd_zone_for_reclaim()
1968 maxw_z = dzone; in dmz_get_rnd_zone_for_reclaim()
1970 dzone = zone; in dmz_get_rnd_zone_for_reclaim()
1971 if (dmz_lock_zone_reclaim(dzone)) in dmz_get_rnd_zone_for_reclaim()
1972 return dzone; in dmz_get_rnd_zone_for_reclaim()
1986 dzone = zone->bzone; in dmz_get_rnd_zone_for_reclaim()
1987 if (dmz_is_rnd(dzone) && dzone->dev->dev_idx != idx) in dmz_get_rnd_zone_for_reclaim()
1990 dzone = zone; in dmz_get_rnd_zone_for_reclaim()
1991 if (dmz_lock_zone_reclaim(dzone)) in dmz_get_rnd_zone_for_reclaim()
1992 return dzone; in dmz_get_rnd_zone_for_reclaim()
2054 struct dm_zone *dzone = NULL; in dmz_get_chunk_mapping() local
2071 dzone = dmz_alloc_zone(zmd, 0, alloc_flags); in dmz_get_chunk_mapping()
2072 if (!dzone) { in dmz_get_chunk_mapping()
2074 dzone = ERR_PTR(-EIO); in dmz_get_chunk_mapping()
2081 dmz_map_zone(zmd, dzone, chunk); in dmz_get_chunk_mapping()
2085 dzone = dmz_get(zmd, dzone_id); in dmz_get_chunk_mapping()
2086 if (!dzone) { in dmz_get_chunk_mapping()
2087 dzone = ERR_PTR(-EIO); in dmz_get_chunk_mapping()
2090 if (dzone->chunk != chunk) { in dmz_get_chunk_mapping()
2091 dzone = ERR_PTR(-EIO); in dmz_get_chunk_mapping()
2096 if (dmz_seq_write_err(dzone)) { in dmz_get_chunk_mapping()
2097 ret = dmz_handle_seq_write_err(zmd, dzone); in dmz_get_chunk_mapping()
2099 dzone = ERR_PTR(-EIO); in dmz_get_chunk_mapping()
2102 clear_bit(DMZ_SEQ_WRITE_ERR, &dzone->flags); in dmz_get_chunk_mapping()
2111 if (dmz_in_reclaim(dzone)) { in dmz_get_chunk_mapping()
2112 dmz_wait_for_reclaim(zmd, dzone); in dmz_get_chunk_mapping()
2115 dmz_activate_zone(dzone); in dmz_get_chunk_mapping()
2116 dmz_lru_zone(zmd, dzone); in dmz_get_chunk_mapping()
2120 return dzone; in dmz_get_chunk_mapping()
2129 void dmz_put_chunk_mapping(struct dmz_metadata *zmd, struct dm_zone *dzone) in dmz_put_chunk_mapping() argument
2135 bzone = dzone->bzone; in dmz_put_chunk_mapping()
2148 dmz_deactivate_zone(dzone); in dmz_put_chunk_mapping()
2149 if (dmz_is_active(dzone) || bzone || dmz_weight(dzone)) in dmz_put_chunk_mapping()
2150 dmz_lru_zone(zmd, dzone); in dmz_put_chunk_mapping()
2153 dmz_unmap_zone(zmd, dzone); in dmz_put_chunk_mapping()
2154 dmz_free_zone(zmd, dzone); in dmz_put_chunk_mapping()
2165 struct dm_zone *dzone) in dmz_get_chunk_buffer() argument
2172 bzone = dzone->bzone; in dmz_get_chunk_buffer()
2188 dmz_set_chunk_mapping(zmd, dzone->chunk, dzone->id, bzone->id); in dmz_get_chunk_buffer()
2191 bzone->chunk = dzone->chunk; in dmz_get_chunk_buffer()
2192 bzone->bzone = dzone; in dmz_get_chunk_buffer()
2193 dzone->bzone = bzone; in dmz_get_chunk_buffer()
2312 void dmz_map_zone(struct dmz_metadata *zmd, struct dm_zone *dzone, in dmz_map_zone() argument
2316 dmz_set_chunk_mapping(zmd, chunk, dzone->id, in dmz_map_zone()
2318 dzone->chunk = chunk; in dmz_map_zone()
2319 if (dmz_is_cache(dzone)) in dmz_map_zone()
2320 list_add_tail(&dzone->link, &zmd->map_cache_list); in dmz_map_zone()
2321 else if (dmz_is_rnd(dzone)) in dmz_map_zone()
2322 list_add_tail(&dzone->link, &dzone->dev->map_rnd_list); in dmz_map_zone()
2324 list_add_tail(&dzone->link, &dzone->dev->map_seq_list); in dmz_map_zone()