- } else {
- nn->m_next = m_copym(n, 0, space, M_WAIT);
- m_adj(n, space);
+ } else {
+ /*
+ * Can't sleep here, because when you wake up
+ * packet you want to attach to may be gone!
+ */
+ if (TNew && (n->m_next = m_copym(m, 0, space, M_NOWAIT))) {
+ nn->m_pkthdr.len += space;
+ TPNagle2++;
+ while (n = n->m_next)
+ sballoc(sb, n);
+ m_adj(m, space);
+ }