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

Function sbflush_internal

freebsd/kern/uipc_sockbuf.c:1427–1443  ·  view source on GitHub ↗

* Free all mbufs in a sockbuf. Check that all resources are reclaimed. */

Source from the content-addressed store, hash-verified

1425 * Free all mbufs in a sockbuf. Check that all resources are reclaimed.
1426 */
1427static void
1428sbflush_internal(struct sockbuf *sb)
1429{
1430
1431 while (sb->sb_mbcnt || sb->sb_tlsdcc) {
1432 /*
1433 * Don't call sbcut(sb, 0) if the leading mbuf is non-empty:
1434 * we would loop forever. Panic instead.
1435 */
1436 if (sb->sb_ccc == 0 && (sb->sb_mb == NULL || sb->sb_mb->m_len))
1437 break;
1438 m_freem(sbcut_internal(sb, (int)sb->sb_ccc));
1439 }
1440 KASSERT(sb->sb_ccc == 0 && sb->sb_mb == 0 && sb->sb_mbcnt == 0,
1441 ("%s: ccc %u mb %p mbcnt %u", __func__,
1442 sb->sb_ccc, (void *)sb->sb_mb, sb->sb_mbcnt));
1443}
1444
1445void
1446sbflush_locked(struct sockbuf *sb)

Callers 2

sbrelease_internalFunction · 0.85
sbflush_lockedFunction · 0.85

Calls 2

sbcut_internalFunction · 0.85
m_freemFunction · 0.70

Tested by

no test coverage detected