DragonFly BSD
DragonFly bugs List (threaded) for 2006-07
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: brelse() panic

From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 9 Jul 2006 13:54:24 -0700 (PDT)

:I noticed two unrelated bugs, which are both fixed in the following patch=
:1. rbp is geteblk()'ed, but in case of a VOP_BMAP() error returned withou=
:t B_INVAL set.

    I would say that this is definitely a bug.  As per the code comments
    for getblk().

:2. I moved the read-ahead after starting the real read for bp, so that I =
:can skip this if an error occured in the reading of bp.  Before rbp might=
: have been a CLUSTER and didn't get special treatment for freeing (hence =
:the panic).
:  simon

    I don't think checking 'error' here is going to matter.  In fact,
    I think the error assignment in the original code is probably wrong:

	vn_strategy(vp, &bp->b_bio1);
	error = bp->b_error;		<<<<<< HERE

    Most drivers set b_error when the I/O completes rather then from
    vn_strategy(), so error is most likely going to be 0 here.

    However, I don't want to change too much at once so lets just leave
    it as it is in your patch.

    I will run some tests with this patch, but it looks pretty good.


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