Lines Matching refs:entry
54 pb_slab_reclaim(struct pb_slabs *slabs, struct pb_slab_entry *entry)
56 struct pb_slab *slab = entry->slab;
58 list_del(&entry->head); /* remove from reclaim list */
59 list_add(&entry->head, &slab->free);
64 struct pb_slab_group *group = &slabs->groups[entry->group_index];
79 struct pb_slab_entry *entry, *next;
81 LIST_FOR_EACH_ENTRY_SAFE(entry, next, &slabs->reclaim, head) {
82 if (slabs->can_reclaim(slabs->priv, entry)) {
83 pb_slab_reclaim(slabs, entry);
87 * - all but one entry reclaimed
101 struct pb_slab_entry *entry, *next;
102 LIST_FOR_EACH_ENTRY_SAFE(entry, next, &slabs->reclaim, head) {
103 if (slabs->can_reclaim(slabs->priv, entry)) {
104 pb_slab_reclaim(slabs, entry);
109 /* Allocate a slab entry of the given size from the given heap.
125 struct pb_slab_entry *entry;
129 /* If the size is <= 3/4 of the entry size, use a slab with entries using
183 entry = list_entry(slab->free.next, struct pb_slab_entry, head);
184 list_del(&entry->head);
189 return entry;
198 /* Free the given slab entry.
200 * The entry may still be in use e.g. by in-flight command submissions. The
201 * can_reclaim callback function will be called to determine whether the entry
205 pb_slab_free(struct pb_slabs* slabs, struct pb_slab_entry *entry)
208 list_addtail(&entry->head, &slabs->reclaim);
289 struct pb_slab_entry *entry =
291 pb_slab_reclaim(slabs, entry);