On Fri, 26 Nov 2010 09:05:45 +0100 Adam Kwolek <adam.kwolek@xxxxxxxxx> wrote: > Unfreeze for external metadata case should unfreeze arrays and container, > not only container as so far. Unfreeze() function doesn't know > what the changes to configuration was made so far, and if arrays > are pulled from frozen state in md. > Unfreeze() has to make sure by performing array unfreeze that all arrays > are not frozen and then unblock monitor. unfreeze for external metadata case *does* unfreeze the arrays. unfreeze_container calls unblock_monitor which calls unblock_subarray for each subarray. So I cannot see that this patch changes anything. What have I missed? NeilBrown > > Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx> > --- > > Grow.c | 18 ++++++++---------- > 1 files changed, 8 insertions(+), 10 deletions(-) > > diff --git a/Grow.c b/Grow.c > index 4060129..8ca1812 100644 > --- a/Grow.c > +++ b/Grow.c > @@ -495,16 +495,14 @@ static void unfreeze(struct supertype *st, int frozen) > return; > > if (st->ss->external) > - return unfreeze_container(st); > - else { > - struct mdinfo *sra = sysfs_read(-1, st->devnum, GET_VERSION); > - > - if (sra) > - sysfs_set_str(sra, NULL, "sync_action", "idle"); > - else > - fprintf(stderr, Name ": failed to unfreeze array\n"); > - sysfs_free(sra); > - } > + unfreeze_container(st); > + > + struct mdinfo *sra = sysfs_read(-1, st->devnum, GET_VERSION); > + if (sra) > + sysfs_set_str(sra, NULL, "sync_action", "idle"); > + else > + fprintf(stderr, Name ": failed to unfreeze array\n"); > + sysfs_free(sra); > } > > static void wait_reshape(struct mdinfo *sra) -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html