dcavalca / rpms / mdadm

Forked from rpms/mdadm 3 years ago
Clone

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

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