version 1.137.2.6, 2007/12/28 15:06:20 |
version 1.145, 2007/12/26 16:01:36 |
Line 2606 pool_cache_put_slow(pool_cache_cpu_t *cc |
|
Line 2606 pool_cache_put_slow(pool_cache_cpu_t *cc |
|
/* |
/* |
* If there's a empty group, release our full |
* If there's a empty group, release our full |
* group back to the cache. Install the empty |
* group back to the cache. Install the empty |
* group and return. |
* group as cc_current and return. |
*/ |
*/ |
|
if ((cur = cc->cc_current) != NULL) { |
|
KASSERT(cur->pcg_avail == pcg->pcg_size); |
|
cur->pcg_next = pc->pc_fullgroups; |
|
pc->pc_fullgroups = cur; |
|
pc->pc_nfull++; |
|
} |
KASSERT(pcg->pcg_avail == 0); |
KASSERT(pcg->pcg_avail == 0); |
|
cc->cc_current = pcg; |
pc->pc_emptygroups = pcg->pcg_next; |
pc->pc_emptygroups = pcg->pcg_next; |
if (cc->cc_previous == NULL) { |
|
cc->cc_previous = pcg; |
|
} else { |
|
if ((cur = cc->cc_current) != NULL) { |
|
KASSERT(cur->pcg_avail == pcg->pcg_size); |
|
cur->pcg_next = pc->pc_fullgroups; |
|
pc->pc_fullgroups = cur; |
|
pc->pc_nfull++; |
|
} |
|
cc->cc_current = pcg; |
|
} |
|
pc->pc_hits++; |
pc->pc_hits++; |
pc->pc_nempty--; |
pc->pc_nempty--; |
mutex_exit(&pc->pc_lock); |
mutex_exit(&pc->pc_lock); |