aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/md
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/md')
-rw-r--r--drivers/md/dm.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index ef5750d21235..0d52f6ff2a1e 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -753,7 +753,7 @@ static void dec_pending(struct dm_io *io, int error)
753static void clone_endio(struct bio *bio, int error) 753static void clone_endio(struct bio *bio, int error)
754{ 754{
755 int r = 0; 755 int r = 0;
756 struct dm_target_io *tio = bio->bi_private; 756 struct dm_target_io *tio = container_of(bio, struct dm_target_io, clone);
757 struct dm_io *io = tio->io; 757 struct dm_io *io = tio->io;
758 struct mapped_device *md = tio->io->md; 758 struct mapped_device *md = tio->io->md;
759 dm_endio_fn endio = tio->ti->type->end_io; 759 dm_endio_fn endio = tio->ti->type->end_io;
@@ -787,7 +787,8 @@ static void clone_endio(struct bio *bio, int error)
787 */ 787 */
788static void end_clone_bio(struct bio *clone, int error) 788static void end_clone_bio(struct bio *clone, int error)
789{ 789{
790 struct dm_rq_clone_bio_info *info = clone->bi_private; 790 struct dm_rq_clone_bio_info *info =
791 container_of(clone, struct dm_rq_clone_bio_info, clone);
791 struct dm_rq_target_io *tio = info->tio; 792 struct dm_rq_target_io *tio = info->tio;
792 struct bio *bio = info->orig; 793 struct bio *bio = info->orig;
793 unsigned int nr_bytes = info->orig->bi_iter.bi_size; 794 unsigned int nr_bytes = info->orig->bi_iter.bi_size;
@@ -1113,7 +1114,6 @@ static void __map_bio(struct dm_target_io *tio)
1113 struct dm_target *ti = tio->ti; 1114 struct dm_target *ti = tio->ti;
1114 1115
1115 clone->bi_end_io = clone_endio; 1116 clone->bi_end_io = clone_endio;
1116 clone->bi_private = tio;
1117 1117
1118 /* 1118 /*
1119 * Map the clone. If r == 0 we don't need to do 1119 * Map the clone. If r == 0 we don't need to do
@@ -1522,7 +1522,6 @@ static int dm_rq_bio_constructor(struct bio *bio, struct bio *bio_orig,
1522 info->orig = bio_orig; 1522 info->orig = bio_orig;
1523 info->tio = tio; 1523 info->tio = tio;
1524 bio->bi_end_io = end_clone_bio; 1524 bio->bi_end_io = end_clone_bio;
1525 bio->bi_private = info;
1526 1525
1527 return 0; 1526 return 0;
1528} 1527}