diff options
Diffstat (limited to 'drivers/md')
-rw-r--r-- | drivers/md/dm.c | 7 |
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) | |||
753 | static void clone_endio(struct bio *bio, int error) | 753 | static 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 | */ |
788 | static void end_clone_bio(struct bio *clone, int error) | 788 | static 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 | } |