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