Index: share/man/man9/Makefile =================================================================== RCS file: /cvs/src/share/man/man9/Makefile,v retrieving revision 1.246 diff -u -p -r1.246 Makefile --- share/man/man9/Makefile 18 Sep 2015 08:30:23 -0000 1.246 +++ share/man/man9/Makefile 22 Oct 2015 05:11:43 -0000 @@ -267,7 +267,7 @@ MLINKS+=microtime.9 getmicrotime.9 micro microtime.9 getnanouptime.9 microtime.9 bintime.9 \ microtime.9 binuptime.9 MLINKS+=ml_init.9 ml_enqueue.9 ml_init.9 ml_dequeue.9 ml_init.9 ml_requeue.9 \ - ml_init.9 ml_dechain.9 \ + ml_init.9 ml_enlist.9 ml_init.9 ml_dechain.9 \ ml_init.9 ml_filter.9 ml_init.9 ml_len.9 ml_init.9 ml_empty.9 \ ml_init.9 MBUF_LIST_INITIALIZER.9 ml_init.9 MBUF_LIST_FOREACH.9 MLINKS+=mountroothook_establish.9 mountroothook_disestablish.9 Index: share/man/man9/ml_init.9 =================================================================== RCS file: /cvs/src/share/man/man9/ml_init.9,v retrieving revision 1.6 diff -u -p -r1.6 ml_init.9 --- share/man/man9/ml_init.9 2 Oct 2015 09:24:13 -0000 1.6 +++ share/man/man9/ml_init.9 22 Oct 2015 05:11:43 -0000 @@ -22,6 +22,7 @@ .Nm ml_enqueue , .Nm ml_dequeue , .Nm ml_requeue , +.Nm ml_enlist , .Nm ml_dechain , .Nm ml_len , .Nm ml_empty , @@ -38,6 +39,8 @@ .Fn ml_dequeue "struct mbuf_list *ml" .Ft void .Fn ml_requeue "struct mbuf_list *ml" "struct mbuf *m" +.Ft void +.Fn ml_enlist "struct mbuf_list *ml" "struct mbuf_list *src" .Ft struct mbuf * .Fn ml_dechain "struct mbuf_list *ml" .Ft struct mbuf * @@ -92,6 +95,12 @@ Enqueue mbuf at the head of the .Fa ml mbuf list. +.It Fn ml_enlist "struct mbuf_list *ml" "struct mbuf_list *src" +Enqueue all the mbufs on the +.Fa src +mbuf list on to the end of the +.Fa ml +mbuf list. .It Fn ml_dechain "struct mbuf_list *ml" Dequeues all mbufs from the .Fa ml @@ -137,6 +146,7 @@ Note that it is unsafe to modify the lis .Fn ml_enqueue , .Fn ml_dequeue , .Fn ml_requeue , +.Fn ml_enlist , .Fn ml_dechain , .Fn ml_len , .Fn ml_empty , Index: sys/sys/mbuf.h =================================================================== RCS file: /cvs/src/sys/sys/mbuf.h,v retrieving revision 1.197 diff -u -p -r1.197 mbuf.h --- sys/sys/mbuf.h 8 Oct 2015 11:36:15 -0000 1.197 +++ sys/sys/mbuf.h 22 Oct 2015 05:11:43 -0000 @@ -487,6 +487,7 @@ void ml_init(struct mbuf_list *); void ml_enqueue(struct mbuf_list *, struct mbuf *); struct mbuf * ml_dequeue(struct mbuf_list *); void ml_requeue(struct mbuf_list *, struct mbuf *); +void ml_enlist(struct mbuf_list *, struct mbuf_list *); struct mbuf * ml_dechain(struct mbuf_list *); struct mbuf * ml_filter(struct mbuf_list *, int (*)(void *, const struct mbuf *), void *); Index: sys/kern/uipc_mbuf.c =================================================================== RCS file: /cvs/src/sys/kern/uipc_mbuf.c,v retrieving revision 1.207 diff -u -p -r1.207 uipc_mbuf.c --- sys/kern/uipc_mbuf.c 14 Aug 2015 05:25:29 -0000 1.207 +++ sys/kern/uipc_mbuf.c 22 Oct 2015 05:11:43 -0000 @@ -1243,8 +1224,6 @@ m_print(void *v, * mbuf lists */ -void ml_join(struct mbuf_list *, struct mbuf_list *); - void ml_init(struct mbuf_list *ml) { @@ -1267,7 +1246,7 @@ ml_enqueue(struct mbuf_list *ml, struct } void -ml_join(struct mbuf_list *mla, struct mbuf_list *mlb) +ml_enlist(struct mbuf_list *mla, struct mbuf_list *mlb) { if (!ml_empty(mlb)) { if (ml_empty(mla)) @@ -1418,7 +1397,7 @@ mq_enlist(struct mbuf_queue *mq, struct mtx_enter(&mq->mq_mtx); if (mq_len(mq) < mq->mq_maxlen) - ml_join(&mq->mq_list, ml); + ml_enlist(&mq->mq_list, ml); else { dropped = ml_len(ml); mq->mq_drops += dropped;