[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