All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] imsm: load migration record from right disk
@ 2016-10-24 10:00 Tomasz Majchrzak
  2016-10-26 16:01 ` Jes Sorensen
  0 siblings, 1 reply; 2+ messages in thread
From: Tomasz Majchrzak @ 2016-10-24 10:00 UTC (permalink / raw)
  To: linux-raid; +Cc: Jes.Sorensen, Tomasz Majchrzak

Migration record is only stored on disks in first and second metadata
slot. The function to load the record incorrectly passes disk slot as
disk index. If rebuilt has taken place for a container, disk slot
doesn't match disk index so it causes migration record to be read from a
disk it has not been written to. As a result reshape operation fails.

Signed-off-by: Tomasz Majchrzak <tomasz.majchrzak@intel.com>
---
 super-intel.c | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/super-intel.c b/super-intel.c
index ac3330a..4859950 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -2656,19 +2656,12 @@ static int load_imsm_migr_rec(struct intel_super *super, struct mdinfo *info)
 	*/
 	if (dev == NULL)
 		return -2;
-	map = get_imsm_map(dev, MAP_0);
 
 	if (info) {
 		for (sd = info->devs ; sd ; sd = sd->next) {
-			/* skip spare and failed disks
-			 */
-			if (sd->disk.raid_disk < 0)
-				continue;
 			/* read only from one of the first two slots */
-			if (map)
-				slot = get_imsm_disk_slot(map,
-							  sd->disk.raid_disk);
-			if (map == NULL || slot > 1 || slot < 0)
+			if ((sd->disk.raid_disk < 0) ||
+			    (sd->disk.raid_disk > 1))
 				continue;
 
 			sprintf(nm, "%d:%d", sd->disk.major, sd->disk.minor);
@@ -2678,6 +2671,7 @@ static int load_imsm_migr_rec(struct intel_super *super, struct mdinfo *info)
 		}
 	}
 	if (fd < 0) {
+		map = get_imsm_map(dev, MAP_0);
 		for (dl = super->disks; dl; dl = dl->next) {
 			/* skip spare and failed disks
 			*/
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] imsm: load migration record from right disk
  2016-10-24 10:00 [PATCH] imsm: load migration record from right disk Tomasz Majchrzak
@ 2016-10-26 16:01 ` Jes Sorensen
  0 siblings, 0 replies; 2+ messages in thread
From: Jes Sorensen @ 2016-10-26 16:01 UTC (permalink / raw)
  To: Tomasz Majchrzak; +Cc: linux-raid

Tomasz Majchrzak <tomasz.majchrzak@intel.com> writes:
> Migration record is only stored on disks in first and second metadata
> slot. The function to load the record incorrectly passes disk slot as
> disk index. If rebuilt has taken place for a container, disk slot
> doesn't match disk index so it causes migration record to be read from a
> disk it has not been written to. As a result reshape operation fails.
>
> Signed-off-by: Tomasz Majchrzak <tomasz.majchrzak@intel.com>
> ---
>  super-intel.c | 12 +++---------
>  1 file changed, 3 insertions(+), 9 deletions(-)

Applied!

Thanks,
Jes

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-10-26 16:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-24 10:00 [PATCH] imsm: load migration record from right disk Tomasz Majchrzak
2016-10-26 16:01 ` Jes Sorensen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.