RE: [PATCH] FIX: reshape_active flag is always set for external metadata

From
Kwolek, Adam <hidden>
Date
2011-01-25 07:27:51
Reply to
NeilBrown, 2011-01-24
-----Original Message-----
From: NeilBrown [mailto:<redacted>]
Sent: Monday, January 24, 2011 10:06 PM
To: Kwolek, Adam
Cc: <redacted>; Williams, Dan J; Ciechanowski, Ed;
Neubauer, Wojciech
Subject: Re: [PATCH] FIX: reshape_active flag is always set for
external metadata

On Thu, 20 Jan 2011 16:52:31 +0100 Adam Kwolek [off-list ref]
wrote:
quoted
For external metadata based on reshape_active flag is taken decision
about reshape
quoted
when it is equal to 1. At this momenta mdadm cannot give up when this
flag is set
quoted
for external metadata.

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

 Grow.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/Grow.c b/Grow.c
index c9f4b9c..f220f50 100644
--- a/Grow.c
+++ b/Grow.c
@@ -1870,7 +1870,7 @@ started:

 	sra->new_chunk = info->new_chunk;

-	if (info->reshape_active)
+	if ((info->reshape_active) && (st->ss->external == 0))
 		/* nothing needed here */;
 	else if (info->array.chunk_size == info->new_chunk &&
 	    reshape.before.layout == reshape.after.layout &&

--
To unsubscribe from this list: send the line "unsubscribe linux-raid"
in
quoted
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
I can guess why you think you need this, though it is always better to
say
explicitly what the problem is that you are fixing.

But this is the wrong place for the fix.

I assume this is when you are assembling an array that is in the middle
of a
reshape.  For that case, sysfs_set_array (called from set_array_info
called
from Assemble) is the place to configure the 'new' geometry of the
array.

NeilBrown
It is not assemble case.
This patch is need for container reshape. When I pick up array in container_reshape(), I'm picking array with reshape_active flag set.
Later in reshape array if reshape_active flag is set and  I'm making no configuration (due to reshape_active flag set). 
This configuration is required. I'm not in the middle of reshape.
I've just have updated metadata and now I want to configure. Configuration is guarded by reshape_active flag and it cannot be made.
This leads to OLCE without added disk (raid_disk sysfs entry is not changed).

Reshape_active flag doesn't tell us about reshape position. To skip configuration reshape position should be checked also (or something that indicates that).

I've guarded it by external flag, because in container_reshape for external metadata and reshape_active flag set doesn't mean that we have resuming reshape process.
It means that metadata is ready for reshape only.

Adam
Thread (5 messages) 5 messages, 2 authors, last reply 2011-01-27
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help