RE: [PATCH 2/9] FIX: Cannot add spare to monitored container

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

 



> -----Original Message-----
> From: NeilBrown [mailto:neilb@xxxxxxx]
> Sent: Wednesday, January 12, 2011 6:43 AM
> To: Kwolek, Adam
> Cc: linux-raid@xxxxxxxxxxxxxxx; Williams, Dan J; Ciechanowski, Ed;
> Neubauer, Wojciech
> Subject: Re: [PATCH 2/9] FIX: Cannot add spare to monitored container
> 
> On Tue, 11 Jan 2011 15:04:03 +0100 Adam Kwolek <adam.kwolek@xxxxxxxxx>
> wrote:
> 
> > This fix rolls backs some changes introduced by patch:
> > 	"Add spares to raid0 in mdadm"
> >
> > Signed-off-by: Adam Kwolek <adam.kwolek@xxxxxxxxx>
> 
> It would help a lot if you explained *why* you were rolling back these
> changes.
> 
> Not applied.
> 
> NeilBrown


I cannot add spare to i.e. raid5 array. In my unit tests, I'm creating raid5 array and then I'm adding spares for expansion (mdadm --add).
If I've create container with more disks than create array that is using fewer disks, I can test expansion.
Spares can be added to raid0 with no monitor usage without problems.
I've started to observe this problem when patch for adding spares to raid0 was applied.
I've identify code change that makes problem. This causes this code rollback. 

Problem that is visible is  that. Monitor cannot write major:minor to new_dev in sysfs /without code roll back/.
I didn't dig this problem deeply. This patch is rather reminder to signalize problem /and not forget about it/.

BR
Adam

> 
> > ---
> >
> >  Manage.c |    8 ++++----
> >  1 files changed, 4 insertions(+), 4 deletions(-)
> >
> > diff --git a/Manage.c b/Manage.c
> > index 4e6afb5..fa1b13f 100644
> > --- a/Manage.c
> > +++ b/Manage.c
> > @@ -800,16 +800,16 @@ int Manage_subdevs(char *devname, int fd,
> >  				if (dv->writemostly == 1)
> >  					disc.state |= 1 << MD_DISK_WRITEMOSTLY;
> >  				dfd = dev_open(dv->devname, O_RDWR |
> O_EXCL|O_DIRECT);
> > -				if (tst->ss->external &&
> > -				    mdmon_running(tst->container_dev))
> > -					tst->update_tail = &tst->updates;
> >  				if (tst->ss->add_to_super(tst, &disc, dfd,
> >  							  dv->devname)) {
> >  					close(dfd);
> >  					return 1;
> >  				}
> >  				/* write_init_super will close 'dfd' */
> > -				if (tst->ss->write_init_super(tst))
> > +				if (tst->ss->external)
> > +					/* mdmon will write the metadata */
> > +					close(dfd);
> > +				else if (tst->ss->write_init_super(tst))
> >  					return 1;
> >  			} else if (dv->re_add) {
> >  				/*  this had better be raid1.

--
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