Messages in this thread | | | Date | Fri, 27 Nov 2009 15:17:21 +1100 | From | Neil Brown <> | 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@suse.de> wrote:
> On Wed, 25 Nov 2009 21:22:57 +0100 > Jiri Slaby <jirislaby@gmail.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
| |