xfs
[Top] [All Lists]

Re: 2.6.15-mm3 bisection: git-xfs.patch makes reiserfs oops

To: Andrew Morton <akpm@xxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, reiserfs-dev@xxxxxxxxxxx, linux-xfs@xxxxxxxxxxx
Subject: Re: 2.6.15-mm3 bisection: git-xfs.patch makes reiserfs oops
From: Nathan Scott <nathans@xxxxxxx>
Date: Mon, 16 Jan 2006 09:48:17 +1100
In-reply-to: <20060115221458.GA3521@xxxxxxxxxxxxxxxx>; from malattia@xxxxxxxx on Sun, Jan 15, 2006 at 11:14:58PM +0100
References: <20060110235554.GA3527@xxxxxxxxxxxxxxxx> <20060110170037.4a614245.akpm@xxxxxxxx> <20060115221458.GA3521@xxxxxxxxxxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.2.5i
On Sun, Jan 15, 2006 at 11:14:58PM +0100, Mattia Dongili wrote:
> [CC-in relevant people/ML]
> 
> Hello!
> 
> second bisection result!
> 
> On Tue, Jan 10, 2006 at 05:00:37PM -0800, Andrew Morton wrote:
> > Mattia Dongili <malattia@xxxxxxxx> wrote:
> [...]
> > > 1- reiser3 oopsed[1] twice while suspending to ram. It seems
> > >    reproducible (have some activity on the fs and suspend)
> > 
> > No significant reiser3 changes in there, so I'd be suspecting something
> > else has gone haywire.
> 
> you're right: git-xfs.patch is the bad guy.
> 
> Unfortunately netconsole isn't helpful in capturing the oops (no serial
> ports here) but I have two more shots (more readable):
> http://oioio.altervista.org/linux/dsc03148.jpg
> http://oioio.altervista.org/linux/dsc03149.jpg

Hmm, thats odd.  It seems to be coming from:
reiserfs_commit_page -> reiserfs_add_ordered_list -> __add_jh(inline)

I guess XFS may have left a buffer_head in an unusual state (with some
private flag/b_private set), somehow, and perhaps that buffer_head has
later been allocated for a page in a reiserfs write.  Does this patch,
below, help at all?

I see one BUG check in __add_jh for non-NULL b_private, but can't see
the top of your console output from the photos - is there a preceding
line with "kernel BUG at ..." in it?

cheers.

-- 
Nathan


--- fs/buffer.c.orig    2006-01-16 10:15:01.332010750 +1100
+++ fs/buffer.c 2006-01-16 10:18:15.276131500 +1100
@@ -1027,7 +1027,7 @@ try_again:
                /* Link the buffer to its page */
                set_bh_page(bh, page, offset);
 
-               bh->b_end_io = NULL;
+               init_buffer(bh, NULL, NULL);
        }
        return head;
 /*


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