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

Function bufkva_free

freebsd/kern/vfs_bio.c:1997–2019  ·  view source on GitHub ↗

* bufkva_free: * * Free the kva allocation for a buffer. * */

Source from the content-addressed store, hash-verified

1995 *
1996 */
1997static void
1998bufkva_free(struct buf *bp)
1999{
2000
2001#ifdef INVARIANTS
2002 if (bp->b_kvasize == 0) {
2003 KASSERT(bp->b_kvabase == unmapped_buf &&
2004 bp->b_data == unmapped_buf,
2005 ("Leaked KVA space on %p", bp));
2006 } else if (buf_mapped(bp))
2007 BUF_CHECK_MAPPED(bp);
2008 else
2009 BUF_CHECK_UNMAPPED(bp);
2010#endif
2011 if (bp->b_kvasize == 0)
2012 return;
2013
2014 vmem_free(buffer_arena, (vm_offset_t)bp->b_kvabase, bp->b_kvasize);
2015 counter_u64_add(bufkvaspace, -bp->b_kvasize);
2016 counter_u64_add(buffreekvacnt, 1);
2017 bp->b_data = bp->b_kvabase = unmapped_buf;
2018 bp->b_kvasize = 0;
2019}
2020
2021/*
2022 * bufkva_alloc:

Callers 2

buf_freeFunction · 0.85
bufkva_allocFunction · 0.85

Calls 3

buf_mappedFunction · 0.85
vmem_freeFunction · 0.85
counter_u64_addFunction · 0.50

Tested by

no test coverage detected