[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091127151721.57c02c29@notabene.brown>
Date: Fri, 27 Nov 2009 15:17:21 +1100
From: Neil Brown <neilb@...e.de>
To: Jiri Slaby <jirislaby@...il.com>
Cc: James Bottomley <James.Bottomley@...e.de>,
linux-kernel@...r.kernel.org, akpm@...ux-foundation.org,
mm-commits@...r.kernel.org, linux-scsi@...r.kernel.org,
Jens Axboe <Jens.Axboe@...cle.com>
Subject: Re: BUG at scsi_lib.c:1108 [Was: mmotm 2009-11-24-16-47 uploaded]
On Thu, 26 Nov 2009 08:13:59 +1100
Neil Brown <neilb@...e.de> wrote:
> On Wed, 25 Nov 2009 21:22:57 +0100
> Jiri Slaby <jirislaby@...il.com> wrote:
>
> > It doesn't make sense at all. How can empty merge cause a regression?
> > And md/for-next doesn't produce the BUG.
>
> I've hit that situation before. Two separate changes in separate
> branches conspire to cause a problem.
>
> md/for-next contains code to handle barriers properly for all levels,
> not just RAID1.
> It is possible I got this wrong in some way, and some new sanity check
> in a separate branch is firing, or it is possible some other bug in
> barrier handling has been added and now that MD sends barriers, it is
> being triggered.
And it looks like I did get it wrong in some way.
I handled a barrier by:
- send an empty barrier to each component
- schedule to write with the barrier flag cleared
- send another empty barrier
If an empty barrier is received, step 2 sends an empty non-barrier,
which caused the BUG.
I have revised the code to special case empty barriers and only perform
the first step.
This should appear in the next -next.
Thanks,
NeilBrown
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists