Skip site navigation (1)Skip section navigation (2)
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>