B_DONE
bp->b_flags |= (B_DONTFREE | B_DONE);
bp->b_flags |= B_DONE;
bp->b_flags &= ~(B_READ | B_DONE | B_DELWRI | B_LOCKED);
bp->b_flags |= B_DONE;
if (bp->b_flags & (B_DELWRI | B_DONE)) {
} else if (!(ibp->b_flags & (B_DELWRI | B_DONE))) {
bp->b_flags |= B_DONE;
} else if (bpp && !(bp->b_flags & (B_DONE|B_DELWRI))) {
if (!(bp->b_flags & (B_DONE | B_DELWRI))) {
bp->b_flags |= B_DONE | B_INVAL;
bp->b_flags &= ~(B_READ | B_DELWRI | B_DONE | B_ERROR);
KASSERT(!(bp->b_flags & B_DONE), ("ncl_doio: bp %p already marked done", bp));
bp->b_flags &= ~B_DONE;
KASSERT(!(bp->b_flags & B_DONE),
bp->b_flags &= ~B_DONE;
bp->b_flags &= ~B_DONE;