| To: | Christoph Hellwig <hch@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: [PATCH 3/5] repair: handle memory allocation failure from blkmap_grow |
| From: | Dave Chinner <david@xxxxxxxxxxxxx> |
| Date: | Mon, 10 Oct 2011 11:10:57 +1100 |
| Cc: | xfs@xxxxxxxxxxx |
| In-reply-to: | <20111009235126.GC13527@xxxxxxxxxxxxx> |
| References: | <1318201910-11144-1-git-send-email-david@xxxxxxxxxxxxx> <1318201910-11144-4-git-send-email-david@xxxxxxxxxxxxx> <20111009235126.GC13527@xxxxxxxxxxxxx> |
| User-agent: | Mutt/1.5.21 (2010-09-15) |
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
|
| Previous by Date: | Re: [PATCH 1/5] repair: handle repair of image files on large sector size filesystems, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH 4/5] repair: don't cache large blkmap allocations, Dave Chinner |
| Previous by Thread: | Re: [PATCH 3/5] repair: handle memory allocation failure from blkmap_grow, Christoph Hellwig |
| Next by Thread: | [PATCH 4/5] repair: don't cache large blkmap allocations, Dave Chinner |
| Indexes: | [Date] [Thread] [Top] [All Lists] |