> -----Original Message----- > From: NeilBrown [mailto:neilb@xxxxxxx] > Sent: Tuesday, February 15, 2011 1:32 AM > To: Kwolek, Adam > Cc: linux-raid@xxxxxxxxxxxxxxx; Williams, Dan J; Ciechanowski, Ed; > Neubauer, Wojciech > Subject: Re: [PATCH 1/5] FIX: set delta_disks to 0 for raid5->raid0 > transition > > On Mon, 14 Feb 2011 14:12:49 +0100 Adam Kwolek <adam.kwolek@xxxxxxxxx> > wrote: > > > We have to set proper value of delta_disks to avoid it wrongly being > set > > when it value remains UnSet for this level transition (Grow.c:1224). > > > > This causes too small value set to "raid_disks" in sysfs > > and reshape raid5->raid0 fails. > > > > Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx> > > --- > > > > Grow.c | 1 + > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > diff --git a/Grow.c b/Grow.c > > index 424d489..dba2825 100644 > > --- a/Grow.c > > +++ b/Grow.c > > @@ -1073,6 +1073,7 @@ char *analyse_change(struct mdinfo *info, > struct reshape *re) > > switch (info->new_level) { > > case 0: > > delta_parity = -1; > > + info->delta_disks = 0; > > case 4: > > re->level = info->array.level; > > re->before.data_disks = info->array.raid_disks - 1; > > I think we have different expectations about what a RAID5 -> RAID0 > transition > means. > > To me, it means getting rid of the parity information. So a 4-device > RAID5 > is converted to a 3-device RAID0 and stays the same size. > > I think you want it to maintain the same number of devices, so a 4- > device > RAID5 becomes a 4-device RAID0 and thus has larger storage. > > If you want that, you need to say: > mdadm -G /dev/md/xxx --level=0 --raid-disks=4 > > I'd be happy with functionality to do: > > mdadm -G /dev/md/xxx --level=0 --raid-disks=nochange > > or something like that so it could be easily scripted easily, but I > want the > default to do the simplest possible change. > > Am I correct about your expectations? Yes you are right. Working in the way you described above, will probably need a change in md or mdadm should degrade array after reshape (before takeover). If I recall takeover code correctly, to execute takeover from raid4/5->raid0, raid4/5 has to be a degraded array. This a reason I've make no changes to raid_disks number, as such behavior seams fit current implementation. Please let me know the direction you think we should go. BR Adam > > Thanks, > NeilBrown -- 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