<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">From: Alasdair G Kergon &lt;agk@redhat.com&gt;

Use new dm_target_offset() macro to avoid most references to ti-&gt;begin
in dm targets.

Signed-off-by: Alasdair G Kergon &lt;agk@redhat.com&gt;

---
 drivers/md/dm-crypt.c  |    4 ++--
 drivers/md/dm-delay.c  |    5 ++---
 drivers/md/dm-linear.c |    2 +-
 drivers/md/dm-raid1.c  |    2 +-
 drivers/md/dm-stripe.c |    2 +-
 5 files changed, 7 insertions(+), 8 deletions(-)

Index: linux-2.6.35/drivers/md/dm-crypt.c
===================================================================
--- linux-2.6.35.orig/drivers/md/dm-crypt.c
+++ linux-2.6.35/drivers/md/dm-crypt.c
@@ -1284,7 +1284,7 @@ static int crypt_map(struct dm_target *t
 		return DM_MAPIO_REMAPPED;
 	}
 
-	io = crypt_io_alloc(ti, bio, bio-&gt;bi_sector - ti-&gt;begin);
+	io = crypt_io_alloc(ti, bio, dm_target_offset(ti, bio-&gt;bi_sector));
 
 	if (bio_data_dir(io-&gt;base_bio) == READ)
 		kcryptd_queue_io(io);
@@ -1406,7 +1406,7 @@ static int crypt_merge(struct dm_target 
 		return max_size;
 
 	bvm-&gt;bi_bdev = cc-&gt;dev-&gt;bdev;
-	bvm-&gt;bi_sector = cc-&gt;start + bvm-&gt;bi_sector - ti-&gt;begin;
+	bvm-&gt;bi_sector = cc-&gt;start + dm_target_offset(ti, bvm-&gt;bi_sector);
 
 	return min(max_size, q-&gt;merge_bvec_fn(q, bvm, biovec));
 }
Index: linux-2.6.35/drivers/md/dm-delay.c
===================================================================
--- linux-2.6.35.orig/drivers/md/dm-delay.c
+++ linux-2.6.35/drivers/md/dm-delay.c
@@ -281,14 +281,13 @@ static int delay_map(struct dm_target *t
 		bio-&gt;bi_bdev = dc-&gt;dev_write-&gt;bdev;
 		if (bio_sectors(bio))
 			bio-&gt;bi_sector = dc-&gt;start_write +
-					 (bio-&gt;bi_sector - ti-&gt;begin);
+					 dm_target_offset(ti, bio-&gt;bi_sector);
 
 		return delay_bio(dc, dc-&gt;write_delay, bio);
 	}
 
 	bio-&gt;bi_bdev = dc-&gt;dev_read-&gt;bdev;
-	bio-&gt;bi_sector = dc-&gt;start_read +
-			 (bio-&gt;bi_sector - ti-&gt;begin);
+	bio-&gt;bi_sector = dc-&gt;start_read + dm_target_offset(ti, bio-&gt;bi_sector);
 
 	return delay_bio(dc, dc-&gt;read_delay, bio);
 }
Index: linux-2.6.35/drivers/md/dm-linear.c
===================================================================
--- linux-2.6.35.orig/drivers/md/dm-linear.c
+++ linux-2.6.35/drivers/md/dm-linear.c
@@ -74,7 +74,7 @@ static sector_t linear_map_sector(struct
 {
 	struct linear_c *lc = ti-&gt;private;
 
-	return lc-&gt;start + (bi_sector - ti-&gt;begin);
+	return lc-&gt;start + dm_target_offset(ti, bi_sector);
 }
 
 static void linear_map_bio(struct dm_target *ti, struct bio *bio)
Index: linux-2.6.35/drivers/md/dm-raid1.c
===================================================================
--- linux-2.6.35.orig/drivers/md/dm-raid1.c
+++ linux-2.6.35/drivers/md/dm-raid1.c
@@ -445,7 +445,7 @@ static sector_t map_sector(struct mirror
 {
 	if (unlikely(!bio-&gt;bi_size))
 		return 0;
-	return m-&gt;offset + (bio-&gt;bi_sector - m-&gt;ms-&gt;ti-&gt;begin);
+	return m-&gt;offset + dm_target_offset(m-&gt;ms-&gt;ti, bio-&gt;bi_sector);
 }
 
 static void map_bio(struct mirror *m, struct bio *bio)
Index: linux-2.6.35/drivers/md/dm-stripe.c
===================================================================
--- linux-2.6.35.orig/drivers/md/dm-stripe.c
+++ linux-2.6.35/drivers/md/dm-stripe.c
@@ -222,7 +222,7 @@ static int stripe_map(struct dm_target *
 		return DM_MAPIO_REMAPPED;
 	}
 
-	offset = bio-&gt;bi_sector - ti-&gt;begin;
+	offset = dm_target_offset(ti, bio-&gt;bi_sector);
 	chunk = offset &gt;&gt; sc-&gt;chunk_shift;
 	stripe = sector_div(chunk, sc-&gt;stripes);
 
</pre></body></html>