Lines Matching refs:nc
4986 static struct page *__page_frag_cache_refill(struct page_frag_cache *nc, in __page_frag_cache_refill() argument
4997 nc->size = page ? PAGE_FRAG_CACHE_MAX_SIZE : PAGE_SIZE; in __page_frag_cache_refill()
5002 nc->va = page ? page_address(page) : NULL; in __page_frag_cache_refill()
5016 void *page_frag_alloc(struct page_frag_cache *nc, in page_frag_alloc() argument
5023 if (unlikely(!nc->va)) { in page_frag_alloc()
5025 page = __page_frag_cache_refill(nc, gfp_mask); in page_frag_alloc()
5031 size = nc->size; in page_frag_alloc()
5039 nc->pfmemalloc = page_is_pfmemalloc(page); in page_frag_alloc()
5040 nc->pagecnt_bias = PAGE_FRAG_CACHE_MAX_SIZE + 1; in page_frag_alloc()
5041 nc->offset = size; in page_frag_alloc()
5044 offset = nc->offset - fragsz; in page_frag_alloc()
5046 page = virt_to_page(nc->va); in page_frag_alloc()
5048 if (!page_ref_sub_and_test(page, nc->pagecnt_bias)) in page_frag_alloc()
5051 if (unlikely(nc->pfmemalloc)) { in page_frag_alloc()
5058 size = nc->size; in page_frag_alloc()
5064 nc->pagecnt_bias = PAGE_FRAG_CACHE_MAX_SIZE + 1; in page_frag_alloc()
5080 nc->pagecnt_bias--; in page_frag_alloc()
5081 nc->offset = offset; in page_frag_alloc()
5083 return nc->va + offset; in page_frag_alloc()