B_NEEDCOMMIT
CLR(bp->b_flags, B_NEEDCOMMIT);
if (bp->b_flags & B_NEEDCOMMIT) {
bp->b_flags &= ~B_NEEDCOMMIT;
bp->b_flags &= ~B_NEEDCOMMIT;
if ((bp->b_flags & (B_ASYNC | B_NEEDCOMMIT | B_NOCACHE)) == B_ASYNC)
bp->b_flags |= B_NEEDCOMMIT;
bp->b_flags &= ~B_NEEDCOMMIT;
if (error == EINTR || (!error && (bp->b_flags & B_NEEDCOMMIT))) {
if ((bp->b_flags & (B_BUSY | B_DELWRI | B_NEEDCOMMIT))
== (B_DELWRI | B_NEEDCOMMIT))
bp->b_flags &= ~B_NEEDCOMMIT;
(B_BUSY|B_DELWRI|B_NEEDCOMMIT|B_NOCACHE))!=B_DELWRI)
if ((bp->b_flags & (B_BUSY | B_DELWRI | B_NEEDCOMMIT))
!= (B_DELWRI | B_NEEDCOMMIT))
bp->b_flags &= ~(B_NEEDCOMMIT | B_WRITEINPROG);
if ((passone || !commit) && (bp->b_flags & B_NEEDCOMMIT))
bp->b_flags |= (B_ASYNC|B_WRITEINPROG|B_NEEDCOMMIT);
if ((oldflags & (B_NEEDCOMMIT | B_WRITEINPROG)) == B_NEEDCOMMIT) {
if (!(bp->b_flags & B_NEEDCOMMIT)) {
bp->b_flags &= ~B_NEEDCOMMIT;