cvs commit: src/sys/sys mbuf.h src/sys/kern uipc_mbuf2.c src/share/man/man9 mbuf_tags.9

Sam Leffler sam at
Sat Oct 9 15:25:53 PDT 2004

Gleb Smirnoff wrote:
> On Sat, Oct 09, 2004 at 08:15:38AM -0700, Sam Leffler wrote:
> S> I don't recall your showing me the change to remove m_tag_free in 
> S> mbuf.h.  These change the semantics of calling m_tag_free--before they 
> S> called the method pointer, but now they explicitly call the static 
> S> function which is typically not what is desired.  Your original request 
> S> was solely to expose the _m_tag_free function so that code could access 
> S> it; but you've done far more than that with this commit.  I believe you 
> S> should revert the API change.
> Sam, I have searched all src/sys for m_tag_free() users. All of them call
> m_tag_free() on an mtag that was just allocated several lines before. This
> means, that nothing have changed for them.
> Yes, I have changed the API, but nothing is affected. And it is important,
> that now API is in accordance with OpenBSD's API, from where mtags came
> from. This will make porting of things easier.

1. You changed this without discussion.
2. It breaks the intentional purpose of subclassing the m_tag_free method.
3. Openbsd compatibility is not broken by calling through the method 
pointer; in fact calling through the method pointer is required to 
maintain compatbility (think about it).

You did not find existing uses of subclassing because I backed out the 
vlan changes to use a private pool for unrelated reasons. I very very 
strongly disagree with this change and want it reverted.


More information about the cvs-src mailing list