Lines Matching defs:sks

176  * Required space for each aligned sks.
253 spl_kmem_slab_t *sks;
261 sks = (spl_kmem_slab_t *)base;
262 sks->sks_magic = SKS_MAGIC;
263 sks->sks_objs = skc->skc_slab_objs;
264 sks->sks_age = jiffies;
265 sks->sks_cache = skc;
266 INIT_LIST_HEAD(&sks->sks_list);
267 INIT_LIST_HEAD(&sks->sks_free_list);
268 sks->sks_ref = 0;
271 for (int i = 0; i < sks->sks_objs; i++) {
278 sko->sko_slab = sks;
280 list_add_tail(&sko->sko_list, &sks->sks_free_list);
283 return (sks);
292 spl_slab_free(spl_kmem_slab_t *sks,
297 ASSERT(sks->sks_magic == SKS_MAGIC);
298 ASSERT(sks->sks_ref == 0);
300 skc = sks->sks_cache;
309 skc->skc_obj_total -= sks->sks_objs;
311 list_del(&sks->sks_list);
312 list_add(&sks->sks_list, sks_list);
313 list_splice_init(&sks->sks_free_list, sko_list);
322 spl_kmem_slab_t *sks = NULL, *m = NULL;
334 list_for_each_entry_safe_reverse(sks, m,
337 if (sks->sks_ref > 0)
340 spl_slab_free(sks, &sks_list, &sko_list);
356 list_for_each_entry_safe(sks, m, &sks_list, sks_list) {
357 ASSERT(sks->sks_magic == SKS_MAGIC);
358 kv_free(skc, sks, skc->skc_slab_size);
886 spl_cache_obj(spl_kmem_cache_t *skc, spl_kmem_slab_t *sks)
891 ASSERT(sks->sks_magic == SKS_MAGIC);
893 sko = list_entry(sks->sks_free_list.next, spl_kmem_obj_t, sko_list);
900 sks->sks_age = jiffies;
901 sks->sks_ref++;
909 if (sks->sks_ref == 1) {
927 spl_kmem_slab_t *sks;
930 sks = spl_slab_alloc(skc, flags);
934 if (sks) {
936 skc->skc_obj_total += sks->sks_objs;
937 list_add_tail(&sks->sks_list, &skc->skc_partial_list);
945 return (sks == NULL ? -ENOMEM : 0);
1085 spl_kmem_slab_t *sks;
1127 sks = list_entry((&skc->skc_partial_list)->next,
1129 ASSERT(sks->sks_magic == SKS_MAGIC);
1130 ASSERT(sks->sks_ref < sks->sks_objs);
1131 ASSERT(!list_empty(&sks->sks_free_list));
1137 while (sks->sks_ref < sks->sks_objs && refill-- > 0 &&
1142 spl_cache_obj(skc, sks);
1146 if (sks->sks_ref == sks->sks_objs) {
1147 list_del(&sks->sks_list);
1148 list_add(&sks->sks_list, &skc->skc_complete_list);
1163 spl_kmem_slab_t *sks = NULL;
1170 sks = sko->sko_slab;
1171 ASSERT(sks->sks_magic == SKS_MAGIC);
1172 ASSERT(sks->sks_cache == skc);
1173 list_add(&sko->sko_list, &sks->sks_free_list);
1175 sks->sks_age = jiffies;
1176 sks->sks_ref--;
1184 if (sks->sks_ref == (sks->sks_objs - 1)) {
1185 list_del(&sks->sks_list);
1186 list_add(&sks->sks_list, &skc->skc_partial_list);
1193 if (sks->sks_ref == 0) {
1194 list_del(&sks->sks_list);
1195 list_add_tail(&sks->sks_list, &skc->skc_partial_list);