Lines Matching refs:spd
183 struct splice_pipe_desc *spd) in splice_to_pipe() argument
185 unsigned int spd_pages = spd->nr_pages; in splice_to_pipe()
203 buf->page = spd->pages[page_nr]; in splice_to_pipe()
204 buf->offset = spd->partial[page_nr].offset; in splice_to_pipe()
205 buf->len = spd->partial[page_nr].len; in splice_to_pipe()
206 buf->private = spd->partial[page_nr].private; in splice_to_pipe()
207 buf->ops = spd->ops; in splice_to_pipe()
215 if (!--spd->nr_pages) in splice_to_pipe()
224 spd->spd_release(spd, page_nr++); in splice_to_pipe()
256 int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) in splice_grow_spd() argument
260 spd->nr_pages_max = max_usage; in splice_grow_spd()
264 spd->pages = kmalloc_array(max_usage, sizeof(struct page *), GFP_KERNEL); in splice_grow_spd()
265 spd->partial = kmalloc_array(max_usage, sizeof(struct partial_page), in splice_grow_spd()
268 if (spd->pages && spd->partial) in splice_grow_spd()
271 kfree(spd->pages); in splice_grow_spd()
272 kfree(spd->partial); in splice_grow_spd()
276 void splice_shrink_spd(struct splice_pipe_desc *spd) in splice_shrink_spd() argument
278 if (spd->nr_pages_max <= PIPE_DEF_BUFFERS) in splice_shrink_spd()
281 kfree(spd->pages); in splice_shrink_spd()
282 kfree(spd->partial); in splice_shrink_spd()