Lines Matching defs:frag
160 struct rds_page_frag *frag;
179 list_for_each_entry_safe(frag, frag_tmp, &list, f_cache_entry) {
180 list_del(&frag->f_cache_entry);
181 WARN_ON(!list_empty(&frag->f_item));
182 kmem_cache_free(rds_ib_frag_slab, frag);
192 /* Recycle frag and attached recv buffer f_sg */
194 struct rds_page_frag *frag)
196 rdsdebug("frag %p page %p\n", frag, sg_page(&frag->f_sg));
198 rds_ib_recv_cache_put(&frag->f_cache_entry, &ic->i_cache_frags);
207 struct rds_page_frag *frag;
214 list_for_each_entry_safe(frag, pos, &ibinc->ii_frags, f_item) {
215 list_del_init(&frag->f_item);
216 rds_ib_frag_free(ic, frag);
279 struct rds_page_frag *frag;
285 frag = container_of(cache_item, struct rds_page_frag, f_cache_entry);
289 frag = kmem_cache_alloc(rds_ib_frag_slab, slab_mask);
290 if (!frag)
293 sg_init_table(&frag->f_sg, 1);
294 ret = rds_page_remainder_alloc(&frag->f_sg,
297 kmem_cache_free(rds_ib_frag_slab, frag);
303 INIT_LIST_HEAD(&frag->f_item);
305 return frag;
537 struct rds_page_frag *frag;
545 frag = list_entry(ibinc->ii_frags.next, struct rds_page_frag, f_item);
550 frag = list_entry(frag->f_item.next,
560 ret = copy_page_to_iter(sg_page(&frag->f_sg),
561 frag->f_sg.offset + frag_off,
790 struct rds_page_frag *frag;
805 frag = list_entry(ibinc->ii_frags.next, struct rds_page_frag, f_item);
817 addr = kmap_atomic(sg_page(&frag->f_sg));
819 src = addr + frag->f_sg.offset + frag_off;
839 frag = list_entry(frag->f_item.next,
1017 /* rds_ib_process_recv() doesn't always consume the frag, and
1019 * success. We already unmapped the frag's pages, though, and
1021 * that it will not find an allocated frag here. Make sure we
1022 * keep that promise by freeing a frag that's still on the ring.