Lines Matching refs:prealloc
114 static struct page *anon_pipe_prealloc_pop(struct anon_pipe_prealloc *prealloc) in anon_pipe_prealloc_pop() argument
116 if (!prealloc->count) in anon_pipe_prealloc_pop()
119 prealloc->count--; in anon_pipe_prealloc_pop()
121 return prealloc->pages[prealloc->count]; in anon_pipe_prealloc_pop()
125 static bool anon_pipe_prealloc_push(struct anon_pipe_prealloc *prealloc, in anon_pipe_prealloc_push() argument
128 if (prealloc->count >= PIPE_PREALLOC_MAX) in anon_pipe_prealloc_push()
130 prealloc->pages[prealloc->count++] = page; in anon_pipe_prealloc_push()
149 have = min_t(unsigned int, READ_ONCE(pipe->prealloc.count), want); in anon_pipe_prefill_and_lock()
166 while (n && anon_pipe_prealloc_push(&pipe->prealloc, pages[n - 1])) in anon_pipe_prefill_and_lock()
186 while (pipe->prealloc.count > PIPE_PREALLOC_KEEP) in anon_pipe_trim_and_unlock()
187 excess[nexcess++] = anon_pipe_prealloc_pop(&pipe->prealloc); in anon_pipe_trim_and_unlock()
199 page = anon_pipe_prealloc_pop(&pipe->prealloc); in anon_pipe_get_page()
211 anon_pipe_prealloc_push(&pipe->prealloc, page)) in anon_pipe_put_page()
944 for (i = 0; i < pipe->prealloc.count; i++) in free_pipe_info()
945 __free_page(pipe->prealloc.pages[i]); in free_pipe_info()