diff options
Diffstat (limited to 'drivers/md/dm-cache-target.c')
-rw-r--r-- | drivers/md/dm-cache-target.c | 22 |
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) | |||
664 | static void remap_to_cache(struct cache *cache, struct bio *bio, | 664 | static 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 | ||
678 | static void check_if_tick_bio_needed(struct cache *cache, struct bio *bio) | 680 | static 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 | ||
713 | static dm_oblock_t get_bio_block(struct cache *cache, struct bio *bio) | 715 | static 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) | |||
1027 | static bool bio_writes_complete_block(struct cache *cache, struct bio *bio) | 1029 | static 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 | ||
1033 | static void avoid_copy(struct dm_cache_migration *mg) | 1035 | static 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 | */ |
1276 | static void process_discard_bio(struct cache *cache, struct bio *bio) | 1278 | static 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); |