Thread (2 messages) 2 messages, 2 authors, 2016-03-23

Re: [PATCH] Grow: goto release if Manage_subdevs failed

From: Guoqing Jiang <hidden>
Date: 2016-03-23 01:13:11

Possibly related (same subject, not in this thread)


On 03/23/2016 01:54 AM, Jes Sorensen wrote:
Guoqing Jiang [off-list ref] writes:
quoted
If failure happened when add disk to array
by grow mode, need to goto release instead
of continue the reshape.

Signed-off-by: Guoqing Jiang <redacted>
---
  Grow.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Grow.c b/Grow.c
index cf2750a..1767a1e 100755
--- a/Grow.c
+++ b/Grow.c
@@ -3003,8 +3003,9 @@ static int reshape_array(char *container, int fd, char *devname,
  	 * level and frozen, we can safely add them.
  	 */
  	if (devlist)
-		Manage_subdevs(devname, fd, devlist, verbose,
-			       0,NULL, 0);
+		if (Manage_subdevs(devname, fd, devlist, verbose,
+				   0,NULL, 0))
+			goto release;
  
  	if (reshape.backup_blocks == 0 && data_offset != INVALID_SECTORS)
  		reshape.backup_blocks = reshape.before.data_disks * info->array.chunk_size/512;
Applied with minor mod to add brackets to the outer if() case - I hope
you are OK with this.
Thanks, I am fine with it :).

Regards,
Guoqing
quoted hunk ↗ jump to hunk
Cheers,
Jes

 From 31dbeda730ab1c25040f2e9b5bc49008b8519adf Mon Sep 17 00:00:00 2001
From: Guoqing Jiang <redacted>
Date: Tue, 22 Mar 2016 17:03:44 +0800
Subject: [PATCH] Grow: goto release if Manage_subdevs failed

If failure happened when add disk to array
by grow mode, need to goto release instead
of continue the reshape.

Signed-off-by: Guoqing Jiang <redacted>
Signed-off-by: Jes Sorensen <redacted>
---
  Grow.c | 8 +++++---
  1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Grow.c b/Grow.c
index 3204135..5953db2 100755
--- a/Grow.c
+++ b/Grow.c
@@ -3009,9 +3009,11 @@ static int reshape_array(char *container, int fd, char *devname,
  	 * array.  Now that the array has been changed to the right
  	 * level and frozen, we can safely add them.
  	 */
-	if (devlist)
-		Manage_subdevs(devname, fd, devlist, verbose,
-			       0,NULL, 0);
+	if (devlist) {
+		if (Manage_subdevs(devname, fd, devlist, verbose,
+				   0, NULL, 0))
+			goto release;
+	}
  
  	if (reshape.backup_blocks == 0 && data_offset != INVALID_SECTORS)
  		reshape.backup_blocks = reshape.before.data_disks * info->array.chunk_size/512;
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help