* Pop a tag off of the freetag stack. */
| 319 | * Pop a tag off of the freetag stack. |
| 320 | */ |
| 321 | static bt_t * |
| 322 | bt_alloc(vmem_t *vm) |
| 323 | { |
| 324 | bt_t *bt; |
| 325 | |
| 326 | VMEM_ASSERT_LOCKED(vm); |
| 327 | bt = LIST_FIRST(&vm->vm_freetags); |
| 328 | MPASS(bt != NULL); |
| 329 | LIST_REMOVE(bt, bt_freelist); |
| 330 | vm->vm_nfreetags--; |
| 331 | |
| 332 | return bt; |
| 333 | } |
| 334 | |
| 335 | /* |
| 336 | * Trim the per-vmem free list. Returns with the lock released to |