[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20060906124719.GA11868@atrey.karlin.mff.cuni.cz>
Date: Wed, 6 Sep 2006 14:47:19 +0200
From: Jan Kara <jack@...e.cz>
To: Badari Pulavarty <pbadari@...ibm.com>
Cc: Andrew Morton <akpm@...l.org>,
Anton Altaparmakov <aia21@....ac.uk>, sct@...hat.com,
linux-fsdevel <linux-fsdevel@...r.kernel.org>,
lkml <linux-kernel@...r.kernel.org>,
ext4 <linux-ext4@...r.kernel.org>, jack@...e.cz
Subject: Re: [RFC][PATCH] set_page_buffer_dirty should skip unmapped buffers
Hi,
> On Fri, 2006-09-01 at 10:18 -0700, Andrew Morton wrote:
> > > > > Kernel BUG at fs/buffer.c:2791
> > > > > invalid opcode: 0000 [1] SMP
> > > > >
> > > > > Its complaining about BUG_ON(!buffer_mapped(bh)).
>
> Here is the change that seems to cause the problem. Jana Kara
> introduced a new mode "SWRITE" for ll_rw_block() - where it
> waits for buffer to be unlocked (WRITE will skip locked
> buffers) + jbd journal_commit_transaction() has been changed
> to make use of SWRITE.
>
> http://marc.theaimsgroup.com/?l=linux-fsdevel&m=112109788702895&w=2
>
> Theoritically same race (between journal_commit_transaction() and
> journal_unmap_buffer()+set_page_dirty()) could exist before his changes
> - which should trigger bug in submit_bh(). But I can't seem to hit
> it without his changes. My guess is ll_rw_block() is always skipping
> those cleaned up buffers, before page gets dirtied again ..
I think that the change to ll_rw_block() just widens the window much
more...
> Andrew, what should we do ? Do you suggest handling this in jbd
> itself (like this patch) ?
Actually that part of commit code needs rewrite anyway (and after that
rewrite you get rid of ll_rw_block()) because of other problems - the
code assumes that whenever buffer is locked, it is being written to disk
which is not true... I have some preliminary patches for that but they
are not very nice and so far I didn't have enough time to find a nice
solution.
Honza
--
Jan Kara <jack@...e.cz>
SuSE CR Labs
-
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists