[Top] [All Lists]

Buffer Head Corruption Found

To: Linux-XFS <linux-xfs@xxxxxxxxxxx>
Subject: Buffer Head Corruption Found
From: Danny <danscox@xxxxxxxxxxxxxx>
Date: Tue, 23 Jan 2001 17:14:41 -0500
Organization: Connex Inc
Reply-to: dcox@xxxxxxxxxx
Sender: owner-linux-xfs@xxxxxxxxxxx

        I just spent today performing a pseudo binary search for a buffer head
corruption I have been experiencing with XFS and RAID5.  I have no idea
why it only happens in this instance, as you'll see.

        In page_buf.c, around line 1424, a call is made to kmem_cache_alloc
().  The short story is: at least one pointer is returned that is
already in use!

        I wrote a function that steps through the buffer_head lists, and checks
for b_next_free == NULL.  Since it's a circular list, that should never
be true.

        However, after the call to kmem_cache_alloc, and the subsequent 'memset
(bh, 0,...)', I have my NULL.  This also is the source of most of my
Oopes from within buffer.c.  Those functions are not expecting a NULL in
b_next_free at all ;-).

        So: I've found it, but I have no idea why kmem_cache_alloc would return
a previously used bh, nor what to do about it.



"Men occasionally stumble over the truth, but most of them pick 
themselves up and hurry off as if nothing had happened." 
   -- Winston Churchill 


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