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

Re: Assertion failure in do_get_write_access() at transaction.c:609:



On Monday May 13, sct redhat com wrote:
> 
> The second case that can cause this is the one you are seeing,
> involving block device IO in parallel with filesystem IO.  That one
> has always been there for block write IO (and in fact it's arguably
> right for ext3 to oops if out-of-band writes are causing ext3's own
> metadata to be written out-of-order), but as of 2.4.11, we now have
> the page-cache/buffer-cache aliasing interactions which can cause ext3
> to see locked buffers even if you are only reading from the buffered
> block device.

I had a bit of a look at the block-device-reading code and it seems to
me that there could be no (direct) interaction between this code that
the code ext3 used to access inodes.
When reading a block device the page cache is used and anonymous
buffer_heads get allocated for each page.  These have to be competely
separate from the buffer_heads allocated for the buffer cache that ext3
uses.  So a read on the block device could never make an ext3 buffer
locked.

Is there something obvious that I have missed??

In any case, thanks for the patch.  It certainly looks like it should
fix the problem, whatever the details of the cause are.

NeilBrown





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