Commit dc9cee5d authored by Mike Snitzer's avatar Mike Snitzer

dm cache: small cleanups related to deferred prison cell cleanup

Eliminate __cell_release() since it only had one caller that always
released the cell holder.

Switch cell_error_with_code() to using free_prison_cell() for the sake
of consistency.
Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
parent 9153df74
...@@ -1063,14 +1063,6 @@ static void dec_io_migrations(struct cache *cache) ...@@ -1063,14 +1063,6 @@ static void dec_io_migrations(struct cache *cache)
atomic_dec(&cache->nr_io_migrations); atomic_dec(&cache->nr_io_migrations);
} }
static void __cell_release(struct cache *cache, struct dm_bio_prison_cell *cell,
bool holder, struct bio_list *bios)
{
(holder ? dm_cell_release : dm_cell_release_no_holder)
(cache->prison, cell, bios);
free_prison_cell(cache, cell);
}
static bool discard_or_flush(struct bio *bio) static bool discard_or_flush(struct bio *bio)
{ {
return bio->bi_rw & (REQ_FLUSH | REQ_FUA | REQ_DISCARD); return bio->bi_rw & (REQ_FLUSH | REQ_FUA | REQ_DISCARD);
...@@ -1078,14 +1070,13 @@ static bool discard_or_flush(struct bio *bio) ...@@ -1078,14 +1070,13 @@ static bool discard_or_flush(struct bio *bio)
static void __cell_defer(struct cache *cache, struct dm_bio_prison_cell *cell) static void __cell_defer(struct cache *cache, struct dm_bio_prison_cell *cell)
{ {
if (discard_or_flush(cell->holder)) if (discard_or_flush(cell->holder)) {
/* /*
* We have to handle these bios * We have to handle these bios individually.
* individually.
*/ */
__cell_release(cache, cell, true, &cache->deferred_bios); dm_cell_release(cache->prison, cell, &cache->deferred_bios);
free_prison_cell(cache, cell);
else } else
list_add_tail(&cell->user_list, &cache->deferred_cells); list_add_tail(&cell->user_list, &cache->deferred_cells);
} }
...@@ -1112,7 +1103,7 @@ static void cell_defer(struct cache *cache, struct dm_bio_prison_cell *cell, boo ...@@ -1112,7 +1103,7 @@ static void cell_defer(struct cache *cache, struct dm_bio_prison_cell *cell, boo
static void cell_error_with_code(struct cache *cache, struct dm_bio_prison_cell *cell, int err) static void cell_error_with_code(struct cache *cache, struct dm_bio_prison_cell *cell, int err)
{ {
dm_cell_error(cache->prison, cell, err); dm_cell_error(cache->prison, cell, err);
dm_bio_prison_free_cell(cache->prison, cell); free_prison_cell(cache, cell);
} }
static void cell_requeue(struct cache *cache, struct dm_bio_prison_cell *cell) static void cell_requeue(struct cache *cache, struct dm_bio_prison_cell *cell)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment