[PATCH] set freed perag structures to NULL to avoid mount failure oops
Eric Sandeen
sandeen at redhat.com
Tue Apr 10 10:31:14 CDT 2012
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.
More information about the xfs
mailing list