Re: [PATCH 3/5] repair: handle memory allocation failure from blkmap_grow

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

 



On Sun, Oct 09, 2011 at 07:51:26PM -0400, Christoph Hellwig wrote:
> >  static blkmap_t *
> >  blkmap_grow(
> > -	blkmap_t	**blkmapp)
> > +	blkmap_t	*blkmap)
> >  {
> >  	pthread_key_t	key = dblkmap_key;
> > -	blkmap_t	*blkmap = *blkmapp;
> > +	blkmap_t	*new_blkmap;
> > +	int		new_naexts = blkmap->naexts + 4;
> >  
> >  	if (pthread_getspecific(key) != blkmap) {
> >  		key = ablkmap_key;
> >  		ASSERT(pthread_getspecific(key) == blkmap);
> >  	}
> >  
> > -	blkmap->naexts += 4;
> > -	blkmap = realloc(blkmap, BLKMAP_SIZE(blkmap->naexts));
> > -	if (blkmap == NULL)
> > - 		do_error(_("realloc failed in blkmap_grow\n"));
> > -	*blkmapp = blkmap;
> > -	pthread_setspecific(key, blkmap);
> > -	return blkmap;
> > +	new_blkmap = realloc(blkmap, BLKMAP_SIZE(new_naexts));
> > +	if (!new_blkmap) {
> > + 		do_error(_("realloc failed in blkmap_grow\n"));
> > +		return NULL;
> > +	}
> > +	blkmap->naexts = new_naexts;
> 
> Why would we modify naexts in the old blkmap?

Ooops. Will fix.


-- 
Dave Chinner
david@xxxxxxxxxxxxx

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs


[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux