version 1.144, 2007/10/05 02:40:25 |
version 1.144.4.1, 2007/11/19 00:48:58 |
|
|
{ |
{ |
struct mbuf *m, *next; |
struct mbuf *m, *next; |
size_t rv = 0; |
size_t rv = 0; |
int s; |
|
|
|
KASSERT(mutex_owned(&so_pendfree_lock)); |
KASSERT(mutex_owned(&so_pendfree_lock)); |
|
|
|
|
sodoloanfree((m->m_flags & M_EXT_PAGES) ? |
sodoloanfree((m->m_flags & M_EXT_PAGES) ? |
m->m_ext.ext_pgs : NULL, m->m_ext.ext_buf, |
m->m_ext.ext_pgs : NULL, m->m_ext.ext_buf, |
m->m_ext.ext_size); |
m->m_ext.ext_size); |
s = splvm(); |
pool_cache_put(mb_cache, m); |
pool_cache_put(&mbpool_cache, m); |
|
splx(s); |
|
} |
} |
|
|
mutex_enter(&so_pendfree_lock); |
mutex_enter(&so_pendfree_lock); |