The intent is to make the zone_mbuf static and switch from ctor/dtor through an indirect function call to a wrapper around uma_zalloc.
I'm not sure about the extra checks which come with it:
if ((m->m_flags & (M_PKTHDR|M_NOFREE)) == (M_PKTHDR|M_NOFREE)) m_tag_delete_chain(m, NULL); if (m->m_flags & M_PKTHDR && m->m_pkthdr.csum_flags & CSUM_SND_TAG) m_snd_tag_rele(m->m_pkthdr.snd_tag); if (m->m_flags & M_EXTPG) mb_free_extpg(m); else if (m->m_flags & M_EXT) mb_free_ext(m); else if ((m->m_flags & M_NOFREE) == 0) uma_zfree(zone_mbuf, m);
I presume M_PKTHDR is not set, but I have trouble figuring out M_EXTPG and M_EXT and I don't have any means to test this. Worst case I can provide m_free_raw which ends up being an equivalent of doing uma_zfree(zone_mbuf, m);.