Date: Wed, 5 Apr 2000 10:03:50 -0700 (PDT) From: "Jonathan M. Bresler" <jmb@hub.freebsd.org> To: dillon@apollo.backplane.com Cc: brdean@unx.sas.com, grog@lemis.com, phk@critter.freebsd.dk, blk@skynet.be, asmodai@wxs.nl, current@FreeBSD.ORG Subject: Re: Vinum breakage Message-ID: <20000405170350.103FC37BBA8@hub.freebsd.org> In-Reply-To: <200004051549.IAA78448@apollo.backplane.com> (message from Matthew Dillon on Wed, 5 Apr 2000 08:49:01 -0700 (PDT))
next in thread | previous in thread | raw e-mail | index | archive | help
> > I've tracked down two bugs in vinum's raid5 implementation and > submitted a tentitive patch to Greg for evaluation. It seems > to fix the panics I was able to reproduce. The patch is available > (but note that once Greg commits the real fix, you need to wipe it > before you cvs update): > > http://www.backplane.com/FreeBSD4/ > > Greg is likely to commit a modified form of this patch once we work > through the issues it brought to light. > > -Matt Matt, help me understand your patch. this is how i read it at this time: Matt has just made available an early patch that corrects the vinum panic. is this the same vinum panic that people are claiming phk created with the bio/buf changes? i dont know the vinum code. i dont know the bio/buf code. i do see that all the code changes are to vinum source files. none of the changes reference the buf/bio parts for the kernel. the patch is against 4.0, code unaffected by phk's changes. the revision levels are those indicated in Matt's patch and those I recevied via CVSup last night. the changes to vinuminterrupt.c from 1.25 to 1.29 appear to be: replace bp->b_flags with bp->b_ioflags and B_ERROR with BIO_ERROR bp->b_flags with bp->b_iocmd and B_READ with BIO_READ BUF_STRATEGY with DEV_STRATEGY rqe->b.b_flags &= ~(B_READ | B_DONE); with rqe->b.b_flags &= ~B_DONE; rqe->b.b_flags |= B_CALL; with rqe->b.b_iocmd = BIO_WRITE; the changes to vinumio.c from 1.52 to 1.55 appear to be the same as the first global search and replace listed above for vinuminterrupt.c the changes to vinumrequest.c from 1.44 to 1.48 appear to be the same as the first global search and replace listed above for vinuminterrupt.c. there are ALSO this change: 794,795c794,796 < bp->b_flags = ubp->b_flags & (B_ORDERED | B_NOCACHE | B_ASYNC); < bp->b_iocmd = BIO_READ; /* inform us when it 's done */ --- > bp->b_flags = ubp->b_flags & (B_NOCACHE | B_ASYNC); > bp->b_ioflags = ubp->b_ioflags & BIO_ORDERED; > bp->b_iocmd = ubp->b_iocmd; and 896c897 < else --- > else if (bp->b_iocmd == BIO_WRITE) /* writing, */ Matt's patch does not affect either area of the code. jmb To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000405170350.103FC37BBA8>