Thread (36 messages) flat view 36 messages, 2 authors, 2011-01-06
STALE5743d

[PATCH 28/34] Take in mind takeover during disk add

From: Adam Kwolek <hidden>
Date: 2011-01-04 14:39:19
Subsystem: the rest · Maintainer: Linus Torvalds

Reduce disk number of added disks if disk number was increased by takeover.

Signed-off-by: Adam Kwolek <redacted>
---

 Grow.c |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/Grow.c b/Grow.c
index 0b151f1..3814579 100644
--- a/Grow.c
+++ b/Grow.c
@@ -1694,10 +1694,12 @@ static int reshape_array(char *container, int fd, char *devname,
 			st->ss->container_content(st, subarray);
 		struct mdinfo *d;
 
-		if (info2)
+		if (info2) {
+			int before_raid_disks = reshape.before.raid_disks;
+			if (orig_level == 0)
+				before_raid_disks--;
 			for (d = info2->devs; d; d = d->next) {
-				if (d->disk.raid_disk >=
-				    reshape.before.raid_disks) {
+				if (d->disk.raid_disk >= before_raid_disks) {
 					/* This is a spare that wants to
 					 * be part of the array.
 					 */
@@ -1705,7 +1707,8 @@ static int reshape_array(char *container, int fd, char *devname,
 					add_disk(fd, st, info2, d);
 				}
 			}
-		sysfs_free(info2);
+			sysfs_free(info2);
+		}
 	}
 
 	if (reshape.blocks == 0) {
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help