Lines Matching defs:dzone

1683 	struct dm_zone *dzone, *bzone;
1720 dzone = dmz_get(zmd, dzone_id);
1721 if (!dzone) {
1726 set_bit(DMZ_DATA, &dzone->flags);
1727 dzone->chunk = chunk;
1728 dmz_get_zone_weight(zmd, dzone);
1730 if (dmz_is_cache(dzone))
1731 list_add_tail(&dzone->link, &zmd->map_cache_list);
1732 else if (dmz_is_rnd(dzone))
1733 list_add_tail(&dzone->link, &dzone->dev->map_rnd_list);
1735 list_add_tail(&dzone->link, &dzone->dev->map_seq_list);
1763 bzone->bzone = dzone;
1764 dzone->bzone = bzone;
1783 dzone = dmz_get(zmd, i);
1784 if (!dzone)
1786 if (dmz_is_meta(dzone))
1788 if (dmz_is_offline(dzone))
1791 if (dmz_is_cache(dzone))
1793 else if (dmz_is_rnd(dzone))
1794 dzone->dev->nr_rnd++;
1796 dzone->dev->nr_seq++;
1798 if (dmz_is_data(dzone)) {
1804 set_bit(DMZ_DATA, &dzone->flags);
1805 dzone->chunk = DMZ_MAP_UNMAPPED;
1806 if (dmz_is_cache(dzone)) {
1807 list_add_tail(&dzone->link, &zmd->unmap_cache_list);
1809 } else if (dmz_is_rnd(dzone)) {
1810 list_add_tail(&dzone->link,
1811 &dzone->dev->unmap_rnd_list);
1812 atomic_inc(&dzone->dev->unmap_nr_rnd);
1814 list_add_tail(&dzone->link, &zmd->reserved_seq_zones_list);
1815 set_bit(DMZ_RESERVED, &dzone->flags);
1817 dzone->dev->nr_seq--;
1819 list_add_tail(&dzone->link,
1820 &dzone->dev->unmap_seq_list);
1821 atomic_inc(&dzone->dev->unmap_nr_seq);
1941 struct dm_zone *dzone = NULL;
1960 dzone = zone->bzone;
1961 if (dmz_is_rnd(dzone) && dzone->dev->dev_idx != idx)
1963 if (!maxw_z || maxw_z->weight < dzone->weight)
1964 maxw_z = dzone;
1966 dzone = zone;
1967 if (dmz_lock_zone_reclaim(dzone))
1968 return dzone;
1982 dzone = zone->bzone;
1983 if (dmz_is_rnd(dzone) && dzone->dev->dev_idx != idx)
1986 dzone = zone;
1987 if (dmz_lock_zone_reclaim(dzone))
1988 return dzone;
2051 struct dm_zone *dzone = NULL;
2068 dzone = dmz_alloc_zone(zmd, 0, alloc_flags);
2069 if (!dzone) {
2071 dzone = ERR_PTR(-EIO);
2078 dmz_map_zone(zmd, dzone, chunk);
2082 dzone = dmz_get(zmd, dzone_id);
2083 if (!dzone) {
2084 dzone = ERR_PTR(-EIO);
2087 if (dzone->chunk != chunk) {
2088 dzone = ERR_PTR(-EIO);
2092 /* Repair write pointer if the sequential dzone has error */
2093 if (dmz_seq_write_err(dzone)) {
2094 ret = dmz_handle_seq_write_err(zmd, dzone);
2096 dzone = ERR_PTR(-EIO);
2099 clear_bit(DMZ_SEQ_WRITE_ERR, &dzone->flags);
2108 if (dmz_in_reclaim(dzone)) {
2109 dmz_wait_for_reclaim(zmd, dzone);
2112 dmz_activate_zone(dzone);
2113 dmz_lru_zone(zmd, dzone);
2117 return dzone;
2126 void dmz_put_chunk_mapping(struct dmz_metadata *zmd, struct dm_zone *dzone)
2132 bzone = dzone->bzone;
2145 dmz_deactivate_zone(dzone);
2146 if (dmz_is_active(dzone) || bzone || dmz_weight(dzone))
2147 dmz_lru_zone(zmd, dzone);
2150 dmz_unmap_zone(zmd, dzone);
2151 dmz_free_zone(zmd, dzone);
2162 struct dm_zone *dzone)
2169 bzone = dzone->bzone;
2185 dmz_set_chunk_mapping(zmd, dzone->chunk, dzone->id, bzone->id);
2188 bzone->chunk = dzone->chunk;
2189 bzone->bzone = dzone;
2190 dzone->bzone = bzone;
2309 void dmz_map_zone(struct dmz_metadata *zmd, struct dm_zone *dzone,
2313 dmz_set_chunk_mapping(zmd, chunk, dzone->id,
2315 dzone->chunk = chunk;
2316 if (dmz_is_cache(dzone))
2317 list_add_tail(&dzone->link, &zmd->map_cache_list);
2318 else if (dmz_is_rnd(dzone))
2319 list_add_tail(&dzone->link, &dzone->dev->map_rnd_list);
2321 list_add_tail(&dzone->link, &dzone->dev->map_seq_list);