tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: bad KASSERT in buffer cache code



On Mon, Jul 14, 2008 at 03:28:23PM +0200, Matthias Drochner wrote:
> 
> hannken%eis.cs.tu-bs.de@localhost said:
> > How should MSDOS fire on bp->b_vp->v_tag != VT_UFS ?
> 
> No idea. Is there a good reason for fs specific assumptions
> in generic buffer code?
> 
> > Do you have a backtrace?
[snip]
> (gdb) print *bp->b_vp
[snip]
>     vu_fifoinfo = 0xcc31fd68, vu_ractx = 0xcc31fd68}, v_type = VBLK,
>   v_tag = VT_UFS, v_lock = {vl_lock = {rw_owner = 0}, vl_canrecurse = 0,

This is a delayed write on a blk device on an ufs file system.  So the
assertion should look as

        KASSERT(bp->b_vp == NULL || bp->b_vp->v_tag != VT_UFS ||
            v_type == VBLK || ISSET(bp->b_flags, B_COWDONE));

Please try with this assertion.
-- 
Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig 
(Germany)


Home | Main Index | Thread Index | Old Index