vinum panic on -devel

Matthew Dillon dillon at apollo.backplane.com
Thu Jul 6 17:07:23 PDT 2006


:
:Matthew Dillon wrote:
:>     That looks like the right fix to me too, go ahead and commit it as
:>     soon as you test it.
:
:alright.  panic()ing my way through vinum, i now reached:
:
:panic: brelse: inappropriate B_PAGING or B_CLUSTER bp 0xc2622a00
:
:#3  0xc01afec5 in brelse (bp=0xc2622a00) at /usr/build/src/sys/kern/vfs_bio.c:971
:#4  0xd5731594 in revive_block (sdno=2) at /usr/build/src/sys/dev/raid/vinum/vinumrevive.c:225
:
:well, of course B_PAGING is set, because revive_block() sets it.  what's the correct way to release this buf?  should i simply unset B_PAGING?
:
:cheers
:  simon

    B_PAGING should not be set on getblk()'d buffers so simply do not
    set B_PAGING.  In fact, vinum shouldn't even be setting the flags
    unconditionally like it is right there. 

    Remove this entirely:
	bp->b_flags = B_PAGING;

    Change:
	bp->b_flags = B_ORDERED | B_PAGING;

    To:
	bp->b_flags |= B_ORDERED;

    This happens in a couple of places in that file.

    That should work.  Really the correct way is probably to use getpbuf()
    instead of geteblk(), but I'd like to make as few functional changes
    as possible to get vinum working again.

					-Matt
					Matthew Dillon 
					<dillon at xxxxxxxxxxxxx>





More information about the Bugs mailing list