Changeset View
Changeset View
Standalone View
Standalone View
sys/kern/vfs_bio.c
Show First 20 Lines • Show All 2,483 Lines • ▼ Show 20 Lines | bundirty(struct buf *bp) | ||||
} | } | ||||
/* | /* | ||||
* Since it is now being written, we can clear its deferred write flag. | * Since it is now being written, we can clear its deferred write flag. | ||||
*/ | */ | ||||
bp->b_flags &= ~B_DEFERRED; | bp->b_flags &= ~B_DEFERRED; | ||||
} | } | ||||
/* | /* | ||||
* bfinval: | |||||
* | |||||
* Forced invalidation of dirty buffer contents. The buffer is | |||||
* invalidated and released. | |||||
*/ | |||||
void | |||||
bfinval(struct buf *bp) | |||||
{ | |||||
CTR3(KTR_BUF, "bfinval(%p) vp %p flags %X", bp, bp->b_vp, bp->b_flags); | |||||
/* | |||||
* Remove from vnode's dirty list and adjust numdirtybuffers | |||||
* accounting. | |||||
*/ | |||||
bundirty(bp); | |||||
/* | |||||
* Fire it into the sun. | |||||
*/ | |||||
bp->b_flags |= B_INVAL | B_RELBUF | B_NOCACHE; | |||||
bp->b_flags &= ~(B_ASYNC | B_CACHE); | |||||
brelse(bp); | |||||
} | |||||
/* | |||||
* bawrite: | * bawrite: | ||||
* | * | ||||
* Asynchronous write. Start output on a buffer, but do not wait for | * Asynchronous write. Start output on a buffer, but do not wait for | ||||
* it to complete. The buffer is released when the output completes. | * it to complete. The buffer is released when the output completes. | ||||
* | * | ||||
* bwrite() ( or the VOP routine anyway ) is responsible for handling | * bwrite() ( or the VOP routine anyway ) is responsible for handling | ||||
* B_INVAL buffers. Not us. | * B_INVAL buffers. Not us. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 2,968 Lines • Show Last 20 Lines |