Lines Matching refs:pfrag

2197 bool skb_page_frag_refill(unsigned int sz, struct page_frag *pfrag, gfp_t gfp)  in skb_page_frag_refill()  argument
2199 if (pfrag->page) { in skb_page_frag_refill()
2200 if (page_ref_count(pfrag->page) == 1) { in skb_page_frag_refill()
2201 pfrag->offset = 0; in skb_page_frag_refill()
2204 if (pfrag->offset + sz <= pfrag->size) in skb_page_frag_refill()
2206 put_page(pfrag->page); in skb_page_frag_refill()
2209 pfrag->offset = 0; in skb_page_frag_refill()
2212 pfrag->page = alloc_pages((gfp & ~__GFP_DIRECT_RECLAIM) | in skb_page_frag_refill()
2216 if (likely(pfrag->page)) { in skb_page_frag_refill()
2217 pfrag->size = PAGE_SIZE << SKB_FRAG_PAGE_ORDER; in skb_page_frag_refill()
2221 pfrag->page = alloc_page(gfp); in skb_page_frag_refill()
2222 if (likely(pfrag->page)) { in skb_page_frag_refill()
2223 pfrag->size = PAGE_SIZE; in skb_page_frag_refill()
2230 bool sk_page_frag_refill(struct sock *sk, struct page_frag *pfrag) in sk_page_frag_refill() argument
2232 if (likely(skb_page_frag_refill(32U, pfrag, sk->sk_allocation))) in sk_page_frag_refill()
2247 struct page_frag *pfrag; in sk_alloc_sg() local
2251 pfrag = sk_page_frag(sk); in sk_alloc_sg()
2256 if (!sk_page_frag_refill(sk, pfrag)) { in sk_alloc_sg()
2261 use = min_t(int, len, pfrag->size - pfrag->offset); in sk_alloc_sg()
2270 orig_offset = pfrag->offset; in sk_alloc_sg()
2271 pfrag->offset += use; in sk_alloc_sg()
2274 if (sg_curr > first_coalesce && sg_page(sge) == pfrag->page && in sk_alloc_sg()
2280 sg_set_page(sge, pfrag->page, use, orig_offset); in sk_alloc_sg()
2281 get_page(pfrag->page); in sk_alloc_sg()