Blob Blame History Raw
From: Mike Snitzer <snitzer@redhat.com>
Date: Thu, 14 Dec 2017 16:30:42 -0500
Subject: [PATCH] dm: remove redundant mapped_device member from clone_info
Git-commit: bc02cdbe53eadcef75221c3f1f48cdcbdb9cb6ef
Patch-mainline: v4.16-rc1
References: bsc#1104967,FATE#325924
 structure

'struct dm_io' already has the same pointer.  So update all accesses
from ci->md to ci->io->md.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Hannes Reinecke <hare@suse.com>
---
 drivers/md/dm.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index 4284ad8d9892..e4213c4c7c9b 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -63,7 +63,6 @@ void dm_issue_global_event(void)
  * One of these is allocated (on-stack) per original bio.
  */
 struct clone_info {
-	struct mapped_device *md;
 	struct dm_table *map;
 	struct bio *bio;
 	struct dm_io *io;
@@ -567,7 +566,7 @@ static struct dm_target_io *alloc_tio(struct clone_info *ci, struct dm_target *t
 		/* the dm_target_io embedded in ci->io is available */
 		tio = &ci->io->tio;
 	} else {
-		struct bio *clone = bio_alloc_bioset(gfp_mask, 0, ci->md->bs);
+		struct bio *clone = bio_alloc_bioset(gfp_mask, 0, ci->io->md->bs);
 		if (!clone)
 			return NULL;
 
@@ -1298,7 +1297,7 @@ static void alloc_multiple_bios(struct bio_list *blist, struct clone_info *ci,
 		struct bio *bio;
 
 		if (try)
-			mutex_lock(&ci->md->table_devices_lock);
+			mutex_lock(&ci->io->md->table_devices_lock);
 		for (bio_nr = 0; bio_nr < num_bios; bio_nr++) {
 			tio = alloc_tio(ci, ti, bio_nr, try ? GFP_NOIO : GFP_NOWAIT);
 			if (!tio)
@@ -1307,7 +1306,7 @@ static void alloc_multiple_bios(struct bio_list *blist, struct clone_info *ci,
 			bio_list_add(blist, &tio->clone);
 		}
 		if (try)
-			mutex_unlock(&ci->md->table_devices_lock);
+			mutex_unlock(&ci->io->md->table_devices_lock);
 		if (bio_nr == num_bios)
 			return;
 
@@ -1500,7 +1499,6 @@ static void __split_and_process_bio(struct mapped_device *md,
 	}
 
 	ci.map = map;
-	ci.md = md;
 	ci.io = alloc_io(md);
 	ci.io->status = 0;
 	atomic_set(&ci.io->io_count, 1);
@@ -1512,7 +1510,7 @@ static void __split_and_process_bio(struct mapped_device *md,
 	start_io_acct(ci.io);
 
 	if (bio->bi_opf & REQ_PREFLUSH) {
-		ci.bio = &ci.md->flush_bio;
+		ci.bio = &ci.io->md->flush_bio;
 		ci.sector_count = 0;
 		error = __send_empty_flush(&ci);
 		/* dec_pending submits any data associated with flush */
-- 
2.16.4