* Associate a buffer with a vnode. */
| 2449 | * Associate a buffer with a vnode. |
| 2450 | */ |
| 2451 | void |
| 2452 | bgetvp(struct vnode *vp, struct buf *bp) |
| 2453 | { |
| 2454 | struct bufobj *bo; |
| 2455 | |
| 2456 | bo = &vp->v_bufobj; |
| 2457 | ASSERT_BO_WLOCKED(bo); |
| 2458 | VNASSERT(bp->b_vp == NULL, bp->b_vp, ("bgetvp: not free")); |
| 2459 | |
| 2460 | CTR3(KTR_BUF, "bgetvp(%p) vp %p flags %X", bp, vp, bp->b_flags); |
| 2461 | VNASSERT((bp->b_xflags & (BX_VNDIRTY|BX_VNCLEAN)) == 0, vp, |
| 2462 | ("bgetvp: bp already attached! %p", bp)); |
| 2463 | |
| 2464 | vhold(vp); |
| 2465 | bp->b_vp = vp; |
| 2466 | bp->b_bufobj = bo; |
| 2467 | /* |
| 2468 | * Insert onto list for new vnode. |
| 2469 | */ |
| 2470 | buf_vlist_add(bp, bo, BX_VNCLEAN); |
| 2471 | } |
| 2472 | |
| 2473 | /* |
| 2474 | * Disassociate a buffer from a vnode. |
no test coverage detected