MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bgetvp

Function bgetvp

freebsd/kern/vfs_subr.c:2451–2471  ·  view source on GitHub ↗

* Associate a buffer with a vnode. */

Source from the content-addressed store, hash-verified

2449 * Associate a buffer with a vnode.
2450 */
2451void
2452bgetvp(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.

Callers 1

getblkxFunction · 0.85

Calls 2

vholdFunction · 0.85
buf_vlist_addFunction · 0.85

Tested by

no test coverage detected