dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

Blame SOURCES/imsm-use-correct-map-when-validating-ppl.patch

2c1b57
From 2fc0fc63a9dbf31a3e333492bc1df80c21fdb10c Mon Sep 17 00:00:00 2001
2c1b57
From: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
2c1b57
Date: Thu, 28 Sep 2017 14:41:17 +0200
2c1b57
Subject: [PATCH 11/12] imsm: use correct map when validating ppl
2c1b57
2c1b57
Use the first map to get the correct disk when rebuilding and not the
2c1b57
failed disk from the second map.
2c1b57
2c1b57
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
2c1b57
Signed-off-by: Jes Sorensen <jsorensen@fb.com>
2c1b57
---
2c1b57
 super-intel.c | 6 +++---
2c1b57
 1 file changed, 3 insertions(+), 3 deletions(-)
2c1b57
2c1b57
diff --git a/super-intel.c b/super-intel.c
2c1b57
index 996d133..cf5d822 100644
2c1b57
--- a/super-intel.c
2c1b57
+++ b/super-intel.c
2c1b57
@@ -6119,7 +6119,6 @@ static int validate_ppl_imsm(struct supertype *st, struct mdinfo *info,
2c1b57
 	struct ppl_header *ppl_hdr;
2c1b57
 	__u32 crc;
2c1b57
 	struct imsm_dev *dev;
2c1b57
-	struct imsm_map *map;
2c1b57
 	__u32 idx;
2c1b57
 	unsigned int i;
2c1b57
 	unsigned long long ppl_offset = 0;
2c1b57
@@ -6134,8 +6133,7 @@ static int validate_ppl_imsm(struct supertype *st, struct mdinfo *info,
2c1b57
 	}
2c1b57
 
2c1b57
 	dev = get_imsm_dev(super, info->container_member);
2c1b57
-	map = get_imsm_map(dev, MAP_X);
2c1b57
-	idx = get_imsm_disk_idx(dev, disk->disk.raid_disk, MAP_X);
2c1b57
+	idx = get_imsm_disk_idx(dev, disk->disk.raid_disk, MAP_0);
2c1b57
 	d = get_imsm_dl_disk(super, idx);
2c1b57
 
2c1b57
 	if (!d || d->index < 0 || is_failed(&d->disk))
2c1b57
@@ -6225,6 +6223,8 @@ out:
2c1b57
 	}
2c1b57
 
2c1b57
 	if (ret == 1) {
2c1b57
+		struct imsm_map *map = get_imsm_map(dev, MAP_X);
2c1b57
+
2c1b57
 		if (map->map_state == IMSM_T_STATE_UNINITIALIZED ||
2c1b57
 		   (map->map_state == IMSM_T_STATE_NORMAL &&
2c1b57
 		   !(dev->vol.dirty & RAIDVOL_DIRTY)))
2c1b57
-- 
2c1b57
2.7.4
2c1b57