Subject: bug in fd.c?
To: None <port-i386@NetBSD.ORG>
From: John M Vinopal <banshee@gabriella.abattoir.com>
List: port-i386
Date: 08/02/1996 18:17:08
It appears that fd will possible return a negative byte count upon error

I base this on fd.c: unmodified: line 579 of 1264 [45%]

fd.c
bad:
        bp->b_flags |= B_ERROR;
done:
        /* Toss transfer; we're done early. */
        biodone(bp);
}

wd.c
bad:
        bp->b_flags |= B_ERROR;
done:
        /* Toss transfer; we're done early. */
        bp->b_resid = bp->b_bcount;
        biodone(bp);
}


It would appear that b_resid is not always initialized in fd.c (but in truth
I don't know enough of the deeper kernel world to assert this).  The return
to disk_unbusy() always has a size argument of (bp->b_bcount - bp->b_resid).

Do I possess head in butt?

-j