aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md/dm-cache-target.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md/dm-cache-target.c')
-rw-r--r--drivers/md/dm-cache-target.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/drivers/md/dm-cache-target.c b/drivers/md/dm-cache-target.c
index 9efcf1059b99..86f9c83eb30c 100644
--- a/drivers/md/dm-cache-target.c
+++ b/drivers/md/dm-cache-target.c
@@ -664,15 +664,17 @@ static void remap_to_origin(struct cache *cache, struct bio *bio)
664static void remap_to_cache(struct cache *cache, struct bio *bio, 664static void remap_to_cache(struct cache *cache, struct bio *bio,
665 dm_cblock_t cblock) 665 dm_cblock_t cblock)
666{ 666{
667 sector_t bi_sector = bio->bi_sector; 667 sector_t bi_sector = bio->bi_iter.bi_sector;
668 668
669 bio->bi_bdev = cache->cache_dev->bdev; 669 bio->bi_bdev = cache->cache_dev->bdev;
670 if (!block_size_is_power_of_two(cache)) 670 if (!block_size_is_power_of_two(cache))
671 bio->bi_sector = (from_cblock(cblock) * cache->sectors_per_block) + 671 bio->bi_iter.bi_sector =
672 sector_div(bi_sector, cache->sectors_per_block); 672 (from_cblock(cblock) * cache->sectors_per_block) +
673 sector_div(bi_sector, cache->sectors_per_block);
673 else 674 else
674 bio->bi_sector = (from_cblock(cblock) << cache->sectors_per_block_shift) | 675 bio->bi_iter.bi_sector =
675 (bi_sector & (cache->sectors_per_block - 1)); 676 (from_cblock(cblock) << cache->sectors_per_block_shift) |
677 (bi_sector & (cache->sectors_per_block - 1));
676} 678}
677 679
678static void check_if_tick_bio_needed(struct cache *cache, struct bio *bio) 680static void check_if_tick_bio_needed(struct cache *cache, struct bio *bio)
@@ -712,7 +714,7 @@ static void remap_to_cache_dirty(struct cache *cache, struct bio *bio,
712 714
713static dm_oblock_t get_bio_block(struct cache *cache, struct bio *bio) 715static dm_oblock_t get_bio_block(struct cache *cache, struct bio *bio)
714{ 716{
715 sector_t block_nr = bio->bi_sector; 717 sector_t block_nr = bio->bi_iter.bi_sector;
716 718
717 if (!block_size_is_power_of_two(cache)) 719 if (!block_size_is_power_of_two(cache))
718 (void) sector_div(block_nr, cache->sectors_per_block); 720 (void) sector_div(block_nr, cache->sectors_per_block);
@@ -1027,7 +1029,7 @@ static void issue_overwrite(struct dm_cache_migration *mg, struct bio *bio)
1027static bool bio_writes_complete_block(struct cache *cache, struct bio *bio) 1029static bool bio_writes_complete_block(struct cache *cache, struct bio *bio)
1028{ 1030{
1029 return (bio_data_dir(bio) == WRITE) && 1031 return (bio_data_dir(bio) == WRITE) &&
1030 (bio->bi_size == (cache->sectors_per_block << SECTOR_SHIFT)); 1032 (bio->bi_iter.bi_size == (cache->sectors_per_block << SECTOR_SHIFT));
1031} 1033}
1032 1034
1033static void avoid_copy(struct dm_cache_migration *mg) 1035static void avoid_copy(struct dm_cache_migration *mg)
@@ -1252,7 +1254,7 @@ static void process_flush_bio(struct cache *cache, struct bio *bio)
1252 size_t pb_data_size = get_per_bio_data_size(cache); 1254 size_t pb_data_size = get_per_bio_data_size(cache);
1253 struct per_bio_data *pb = get_per_bio_data(bio, pb_data_size); 1255 struct per_bio_data *pb = get_per_bio_data(bio, pb_data_size);
1254 1256
1255 BUG_ON(bio->bi_size); 1257 BUG_ON(bio->bi_iter.bi_size);
1256 if (!pb->req_nr) 1258 if (!pb->req_nr)
1257 remap_to_origin(cache, bio); 1259 remap_to_origin(cache, bio);
1258 else 1260 else
@@ -1275,9 +1277,9 @@ static void process_flush_bio(struct cache *cache, struct bio *bio)
1275 */ 1277 */
1276static void process_discard_bio(struct cache *cache, struct bio *bio) 1278static void process_discard_bio(struct cache *cache, struct bio *bio)
1277{ 1279{
1278 dm_block_t start_block = dm_sector_div_up(bio->bi_sector, 1280 dm_block_t start_block = dm_sector_div_up(bio->bi_iter.bi_sector,
1279 cache->discard_block_size); 1281 cache->discard_block_size);
1280 dm_block_t end_block = bio->bi_sector + bio_sectors(bio); 1282 dm_block_t end_block = bio_end_sector(bio);
1281 dm_block_t b; 1283 dm_block_t b;
1282 1284
1283 end_block = block_div(end_block, cache->discard_block_size); 1285 end_block = block_div(end_block, cache->discard_block_size);