dm-thin: use blkdev_issue_flush instead of open coding it
Use blkdev_issue_flush, which uses an on-stack bio instead of an opencoded version with a bio embedded into struct pool. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20220124091107.642561-9-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
eba33b8ef1
commit
28d7d128aa
|
@ -282,8 +282,6 @@ struct pool {
|
|||
struct dm_bio_prison_cell **cell_sort_array;
|
||||
|
||||
mempool_t mapping_pool;
|
||||
|
||||
struct bio flush_bio;
|
||||
};
|
||||
|
||||
static void metadata_operation_failed(struct pool *pool, const char *op, int r);
|
||||
|
@ -2906,7 +2904,6 @@ static void __pool_destroy(struct pool *pool)
|
|||
if (pool->next_mapping)
|
||||
mempool_free(pool->next_mapping, &pool->mapping_pool);
|
||||
mempool_exit(&pool->mapping_pool);
|
||||
bio_uninit(&pool->flush_bio);
|
||||
dm_deferred_set_destroy(pool->shared_read_ds);
|
||||
dm_deferred_set_destroy(pool->all_io_ds);
|
||||
kfree(pool);
|
||||
|
@ -2987,7 +2984,6 @@ static struct pool *pool_create(struct mapped_device *pool_md,
|
|||
pool->low_water_triggered = false;
|
||||
pool->suspended = true;
|
||||
pool->out_of_data_space = false;
|
||||
bio_init(&pool->flush_bio, NULL, 0);
|
||||
|
||||
pool->shared_read_ds = dm_deferred_set_create();
|
||||
if (!pool->shared_read_ds) {
|
||||
|
@ -3194,13 +3190,8 @@ static void metadata_low_callback(void *context)
|
|||
static int metadata_pre_commit_callback(void *context)
|
||||
{
|
||||
struct pool *pool = context;
|
||||
struct bio *flush_bio = &pool->flush_bio;
|
||||
|
||||
bio_reset(flush_bio);
|
||||
bio_set_dev(flush_bio, pool->data_dev);
|
||||
flush_bio->bi_opf = REQ_OP_WRITE | REQ_PREFLUSH;
|
||||
|
||||
return submit_bio_wait(flush_bio);
|
||||
return blkdev_issue_flush(pool->data_dev);
|
||||
}
|
||||
|
||||
static sector_t get_dev_size(struct block_device *bdev)
|
||||
|
|
Loading…
Reference in New Issue