Lines Matching defs:dzone

193  * Move valid blocks of dzone buffer zone into dzone (after its write pointer)
196 static int dmz_reclaim_buf(struct dmz_reclaim *zrc, struct dm_zone *dzone)
198 struct dm_zone *bzone = dzone->bzone;
199 sector_t chunk_block = dzone->wp_block;
205 dzone->chunk, bzone->id, dmz_weight(bzone),
206 dzone->id, dmz_weight(dzone));
209 ret = dmz_reclaim_copy(zrc, bzone, dzone);
216 ret = dmz_merge_valid_blocks(zmd, bzone, dzone, chunk_block);
222 dmz_unlock_zone_reclaim(dzone);
233 * Merge valid blocks of dzone into its buffer zone and free dzone.
235 static int dmz_reclaim_seq_data(struct dmz_reclaim *zrc, struct dm_zone *dzone)
237 unsigned int chunk = dzone->chunk;
238 struct dm_zone *bzone = dzone->bzone;
244 chunk, dzone->id, dmz_weight(dzone),
248 ret = dmz_reclaim_copy(zrc, dzone, bzone);
255 ret = dmz_merge_valid_blocks(zmd, dzone, bzone, 0);
261 dmz_invalidate_blocks(zmd, dzone, 0, dmz_zone_nr_blocks(zmd));
264 dmz_unmap_zone(zmd, dzone);
265 dmz_unlock_zone_reclaim(dzone);
266 dmz_free_zone(zmd, dzone);
277 * Move valid blocks of the random data zone dzone into a free sequential zone.
280 static int dmz_reclaim_rnd_data(struct dmz_reclaim *zrc, struct dm_zone *dzone)
282 unsigned int chunk = dzone->chunk;
303 dmz_is_cache(dzone) ? "cache" : "rnd",
304 dzone->id, dmz_weight(dzone),
308 ret = dmz_reclaim_copy(zrc, dzone, szone);
314 ret = dmz_copy_valid_blocks(zmd, dzone, szone);
323 dmz_invalidate_blocks(zmd, dzone, 0, dmz_zone_nr_blocks(zmd));
325 dmz_unmap_zone(zmd, dzone);
326 dmz_unlock_zone_reclaim(dzone);
327 dmz_free_zone(zmd, dzone);
340 static void dmz_reclaim_empty(struct dmz_reclaim *zrc, struct dm_zone *dzone)
346 dmz_unmap_zone(zmd, dzone);
347 dmz_unlock_zone_reclaim(dzone);
348 dmz_free_zone(zmd, dzone);
367 struct dm_zone *dzone;
373 dzone = dmz_get_zone_for_reclaim(zmd, zrc->dev_idx,
375 if (!dzone) {
380 rzone = dzone;
383 if (dmz_is_cache(dzone) || dmz_is_rnd(dzone)) {
384 if (!dmz_weight(dzone)) {
386 dmz_reclaim_empty(zrc, dzone);
393 ret = dmz_reclaim_rnd_data(zrc, dzone);
396 struct dm_zone *bzone = dzone->bzone;
403 if (ret == 0 || chunk_block >= dzone->wp_block) {
408 ret = dmz_reclaim_buf(zrc, dzone);
416 ret = dmz_reclaim_seq_data(zrc, dzone);
429 dmz_unlock_zone_reclaim(dzone);