Re: [2.4] page->buffers vanished in journal_try_to_free_buffers()

From: Stephen C. Tweedie
Date: Mon Jun 21 2004 - 10:09:54 EST


Hi,

On Thu, 2004-06-17 at 14:16, Marcelo Tosatti wrote:

> Stephen, Andrew, do you have any idea how the buffers could have vanished
> under us with the page locked? That should not be possible.

No, especially not on UP as Frank reported.

> I dont see how this "page->buffers = NULL" could be caused by hardware problem,
> which is usually one or two bit flip.

We don't know for sure that it's page->buffers. If we have gone round
the bh->b_this_page loop already, we could have ended up following the
pointers either to an invalid bh, or to one that's not on the current
page. So it could also be the previous buffer's b_this_page that got
clobbered, rather than page->buffers.

That's possible in this case, but it's still a bit surprising that we'd
*always* get a NULL pointer rather than some other random pointer as a
result.

The buffer-ring debug patch that you posted looks like the obvious way
to dig further into this. If that doesn't get anyway, we can also trap
the case where following bh->b_this_page gives us a buffer whose b_page
is on a different page.

--Stephen


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/