xfs
[Top] [All Lists]

Re: [PATCH] set freed perag structures to NULL to avoid mount failure oo

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH] set freed perag structures to NULL to avoid mount failure oops
From: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Tue, 10 Apr 2012 10:31:14 -0500
Cc: xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20120410071204.GO18323@dastard>
References: <4F7DF263.6060802@xxxxxxxxxx> <20120410071204.GO18323@dastard>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:11.0) Gecko/20120327 Thunderbird/11.0.1
On 4/10/12 2:12 AM, Dave Chinner wrote:
> On Thu, Apr 05, 2012 at 12:28:35PM -0700, Eric Sandeen wrote:

...

>>      kmem_free(pag);
>> +    pag = NULL;
>>  }
> 
> As it is, I don't quite understand what setting a local variable to
> NULL is supposed to acheive here - the perag structure has been
> removed from the radix tree and zeroing a local variable doesn't do
> anything globally visible...

er, right.  Ok.

> What is more likely is that the log mount failure path is not
> flushing the buftarg correctly before tearing down the perag
> structures. Indeed, a log mount failure (and a perag data
> intialisation failure) will simply tear down the perag structures
> without waiting for cached buffers to be flushed in xfs_mountfs(),
> so that is going to the root cause of this problem. i.e. we need
> xfs_flush_buftarg() calls in the mountfs error handling path....

Ok, makes sense.

-Eric

> Cheers,
> 
> Dave.

<Prev in Thread] Current Thread [Next in Thread>