Re: [PATCH 2/2] imsm: Update metadata for second array

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 31 Jan 2011 09:28:54 +0000 "Kwolek, Adam" <adam.kwolek@xxxxxxxxx>
wrote:

> 
> 
> > -----Original Message-----
> > From: linux-raid-owner@xxxxxxxxxxxxxxx [mailto:linux-raid-
> > owner@xxxxxxxxxxxxxxx] On Behalf Of NeilBrown
> > Sent: Monday, January 31, 2011 10:19 AM
> > To: Kwolek, Adam
> > Cc: linux-raid@xxxxxxxxxxxxxxx; Williams, Dan J; Ciechanowski, Ed;
> > Neubauer, Wojciech
> > Subject: Re: [PATCH 2/2] imsm: Update metadata for second array
> > 
> > On Mon, 31 Jan 2011 09:59:30 +0100 Adam Kwolek <adam.kwolek@xxxxxxxxx>
> > wrote:
> > 
> > > When second array reshape is about to start external metadata should
> > be updated
> > > by mdmon in imsm_set_array_state().
> > > For this purposes imsm_progress_container_reshape() is reused.
> > >
> > > Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx>
> > > ---
> > >
> > >  super-intel.c |    6 +++++-
> > >  1 files changed, 5 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/super-intel.c b/super-intel.c
> > > index 8484df6..0ab4355 100644
> > > --- a/super-intel.c
> > > +++ b/super-intel.c
> > > @@ -5249,13 +5249,17 @@ static int imsm_set_array_state(struct
> > active_array *a, int consistent)
> > >  		super->updates_pending++;
> > >  	}
> > >
> > > -	/* finalize online capacity expansion/reshape */
> > > +	/* manage online capacity expansion/reshape */
> > >  	if ((a->curr_action != reshape) &&
> > >  	    (a->prev_action == reshape)) {
> > >  		struct mdinfo *mdi;
> > >
> > > +		/* finalize online capacity expansion/reshape */
> > >  		for (mdi = a->info.devs; mdi; mdi = mdi->next)
> > >  			imsm_set_disk(a, mdi->disk.raid_disk, mdi-
> > >curr_state);
> > > +
> > > +		/* check next volume reshape */
> > > +		imsm_progress_container_reshape(super);
> > >  	}
> > >
> > >  	return consistent;
> > 
> > You still haven't explained why you need this extra call to
> > imsm_progress_container_reshape.
> > Does the other call never get reached?  or does it do the wrong thing?
> > or is
> > it called too early? or too late or .....
> > 
> > NeilBrown
> 
> Call to imsm_progress_container_reshape() placed above (super-intel.c:5186), cannot be used as it is called for currently migrated volume only.
> If we finish migration it will be never be called (guard for migration in progress: super-intel.c:5133)
> 
> Answer is: It is never called for no migration in progress (not too early and not too late: never).
> 
> This a reason I've add second call (after finalizing migration) for next array reshape initiation .
> 

Thanks.
I've applied this for now, but I think something is badly messed up in the
handling of migration state - it is terribly convoluted.
However I don't have time to untangle it just now so I'll just take you patch
and hope it doesn't make anything worse :-)

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


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux