提交 b441a262 编写于 作者: A Alasdair G Kergon

dm: use dm_target_offset macro

Use new dm_target_offset() macro to avoid most references to ti->begin
in dm targets.
Signed-off-by: NAlasdair G Kergon <agk@redhat.com>
上级 56a67df7
...@@ -1284,7 +1284,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio, ...@@ -1284,7 +1284,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio,
return DM_MAPIO_REMAPPED; return DM_MAPIO_REMAPPED;
} }
io = crypt_io_alloc(ti, bio, bio->bi_sector - ti->begin); io = crypt_io_alloc(ti, bio, dm_target_offset(ti, bio->bi_sector));
if (bio_data_dir(io->base_bio) == READ) if (bio_data_dir(io->base_bio) == READ)
kcryptd_queue_io(io); kcryptd_queue_io(io);
...@@ -1406,7 +1406,7 @@ static int crypt_merge(struct dm_target *ti, struct bvec_merge_data *bvm, ...@@ -1406,7 +1406,7 @@ static int crypt_merge(struct dm_target *ti, struct bvec_merge_data *bvm,
return max_size; return max_size;
bvm->bi_bdev = cc->dev->bdev; bvm->bi_bdev = cc->dev->bdev;
bvm->bi_sector = cc->start + bvm->bi_sector - ti->begin; bvm->bi_sector = cc->start + dm_target_offset(ti, bvm->bi_sector);
return min(max_size, q->merge_bvec_fn(q, bvm, biovec)); return min(max_size, q->merge_bvec_fn(q, bvm, biovec));
} }
......
...@@ -281,14 +281,13 @@ static int delay_map(struct dm_target *ti, struct bio *bio, ...@@ -281,14 +281,13 @@ static int delay_map(struct dm_target *ti, struct bio *bio,
bio->bi_bdev = dc->dev_write->bdev; bio->bi_bdev = dc->dev_write->bdev;
if (bio_sectors(bio)) if (bio_sectors(bio))
bio->bi_sector = dc->start_write + bio->bi_sector = dc->start_write +
(bio->bi_sector - ti->begin); dm_target_offset(ti, bio->bi_sector);
return delay_bio(dc, dc->write_delay, bio); return delay_bio(dc, dc->write_delay, bio);
} }
bio->bi_bdev = dc->dev_read->bdev; bio->bi_bdev = dc->dev_read->bdev;
bio->bi_sector = dc->start_read + bio->bi_sector = dc->start_read + dm_target_offset(ti, bio->bi_sector);
(bio->bi_sector - ti->begin);
return delay_bio(dc, dc->read_delay, bio); return delay_bio(dc, dc->read_delay, bio);
} }
......
...@@ -74,7 +74,7 @@ static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector) ...@@ -74,7 +74,7 @@ static sector_t linear_map_sector(struct dm_target *ti, sector_t bi_sector)
{ {
struct linear_c *lc = ti->private; struct linear_c *lc = ti->private;
return lc->start + (bi_sector - ti->begin); return lc->start + dm_target_offset(ti, bi_sector);
} }
static void linear_map_bio(struct dm_target *ti, struct bio *bio) static void linear_map_bio(struct dm_target *ti, struct bio *bio)
......
...@@ -445,7 +445,7 @@ static sector_t map_sector(struct mirror *m, struct bio *bio) ...@@ -445,7 +445,7 @@ static sector_t map_sector(struct mirror *m, struct bio *bio)
{ {
if (unlikely(!bio->bi_size)) if (unlikely(!bio->bi_size))
return 0; return 0;
return m->offset + (bio->bi_sector - m->ms->ti->begin); return m->offset + dm_target_offset(m->ms->ti, bio->bi_sector);
} }
static void map_bio(struct mirror *m, struct bio *bio) static void map_bio(struct mirror *m, struct bio *bio)
......
...@@ -222,7 +222,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio, ...@@ -222,7 +222,7 @@ static int stripe_map(struct dm_target *ti, struct bio *bio,
return DM_MAPIO_REMAPPED; return DM_MAPIO_REMAPPED;
} }
offset = bio->bi_sector - ti->begin; offset = dm_target_offset(ti, bio->bi_sector);
chunk = offset >> sc->chunk_shift; chunk = offset >> sc->chunk_shift;
stripe = sector_div(chunk, sc->stripes); stripe = sector_div(chunk, sc->stripes);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册