Lines Matching refs:dzone

196 static int dmz_reclaim_buf(struct dmz_reclaim *zrc, struct dm_zone *dzone)  in dmz_reclaim_buf()  argument
198 struct dm_zone *bzone = dzone->bzone; in dmz_reclaim_buf()
199 sector_t chunk_block = dzone->wp_block; in dmz_reclaim_buf()
205 dzone->chunk, bzone->id, dmz_weight(bzone), in dmz_reclaim_buf()
206 dzone->id, dmz_weight(dzone)); in dmz_reclaim_buf()
209 ret = dmz_reclaim_copy(zrc, bzone, dzone); in dmz_reclaim_buf()
216 ret = dmz_merge_valid_blocks(zmd, bzone, dzone, chunk_block); in dmz_reclaim_buf()
222 dmz_unlock_zone_reclaim(dzone); in dmz_reclaim_buf()
235 static int dmz_reclaim_seq_data(struct dmz_reclaim *zrc, struct dm_zone *dzone) in dmz_reclaim_seq_data() argument
237 unsigned int chunk = dzone->chunk; in dmz_reclaim_seq_data()
238 struct dm_zone *bzone = dzone->bzone; in dmz_reclaim_seq_data()
244 chunk, dzone->id, dmz_weight(dzone), in dmz_reclaim_seq_data()
248 ret = dmz_reclaim_copy(zrc, dzone, bzone); in dmz_reclaim_seq_data()
255 ret = dmz_merge_valid_blocks(zmd, dzone, bzone, 0); in dmz_reclaim_seq_data()
261 dmz_invalidate_blocks(zmd, dzone, 0, dmz_zone_nr_blocks(zmd)); in dmz_reclaim_seq_data()
264 dmz_unmap_zone(zmd, dzone); in dmz_reclaim_seq_data()
265 dmz_unlock_zone_reclaim(dzone); in dmz_reclaim_seq_data()
266 dmz_free_zone(zmd, dzone); in dmz_reclaim_seq_data()
280 static int dmz_reclaim_rnd_data(struct dmz_reclaim *zrc, struct dm_zone *dzone) in dmz_reclaim_rnd_data() argument
282 unsigned int chunk = dzone->chunk; in dmz_reclaim_rnd_data()
303 dmz_is_cache(dzone) ? "cache" : "rnd", in dmz_reclaim_rnd_data()
304 dzone->id, dmz_weight(dzone), in dmz_reclaim_rnd_data()
308 ret = dmz_reclaim_copy(zrc, dzone, szone); in dmz_reclaim_rnd_data()
314 ret = dmz_copy_valid_blocks(zmd, dzone, szone); in dmz_reclaim_rnd_data()
323 dmz_invalidate_blocks(zmd, dzone, 0, dmz_zone_nr_blocks(zmd)); in dmz_reclaim_rnd_data()
325 dmz_unmap_zone(zmd, dzone); in dmz_reclaim_rnd_data()
326 dmz_unlock_zone_reclaim(dzone); in dmz_reclaim_rnd_data()
327 dmz_free_zone(zmd, dzone); in dmz_reclaim_rnd_data()
340 static void dmz_reclaim_empty(struct dmz_reclaim *zrc, struct dm_zone *dzone) in dmz_reclaim_empty() argument
346 dmz_unmap_zone(zmd, dzone); in dmz_reclaim_empty()
347 dmz_unlock_zone_reclaim(dzone); in dmz_reclaim_empty()
348 dmz_free_zone(zmd, dzone); in dmz_reclaim_empty()
367 struct dm_zone *dzone; in dmz_do_reclaim() local
373 dzone = dmz_get_zone_for_reclaim(zmd, zrc->dev_idx, in dmz_do_reclaim()
375 if (!dzone) { in dmz_do_reclaim()
380 rzone = dzone; in dmz_do_reclaim()
383 if (dmz_is_cache(dzone) || dmz_is_rnd(dzone)) { in dmz_do_reclaim()
384 if (!dmz_weight(dzone)) { in dmz_do_reclaim()
386 dmz_reclaim_empty(zrc, dzone); in dmz_do_reclaim()
393 ret = dmz_reclaim_rnd_data(zrc, dzone); in dmz_do_reclaim()
396 struct dm_zone *bzone = dzone->bzone; in dmz_do_reclaim()
403 if (ret == 0 || chunk_block >= dzone->wp_block) { in dmz_do_reclaim()
408 ret = dmz_reclaim_buf(zrc, dzone); in dmz_do_reclaim()
416 ret = dmz_reclaim_seq_data(zrc, dzone); in dmz_do_reclaim()
429 dmz_unlock_zone_reclaim(dzone); in dmz_do_reclaim()