Lines Matching refs:spd
198 struct splice_pipe_desc *spd) in splice_to_pipe() argument
200 unsigned int spd_pages = spd->nr_pages; in splice_to_pipe()
219 buf->page = spd->pages[page_nr]; in splice_to_pipe()
220 buf->offset = spd->partial[page_nr].offset; in splice_to_pipe()
221 buf->len = spd->partial[page_nr].len; in splice_to_pipe()
222 buf->private = spd->partial[page_nr].private; in splice_to_pipe()
223 buf->ops = spd->ops; in splice_to_pipe()
231 if (!--spd->nr_pages) in splice_to_pipe()
240 spd->spd_release(spd, page_nr++); in splice_to_pipe()
272 int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) in splice_grow_spd() argument
276 spd->nr_pages_max = max_usage; in splice_grow_spd()
280 spd->pages = kmalloc_array(max_usage, sizeof(struct page *), GFP_KERNEL); in splice_grow_spd()
281 spd->partial = kmalloc_array(max_usage, sizeof(struct partial_page), in splice_grow_spd()
284 if (spd->pages && spd->partial) in splice_grow_spd()
287 kfree(spd->pages); in splice_grow_spd()
288 kfree(spd->partial); in splice_grow_spd()
292 void splice_shrink_spd(struct splice_pipe_desc *spd) in splice_shrink_spd() argument
294 if (spd->nr_pages_max <= PIPE_DEF_BUFFERS) in splice_shrink_spd()
297 kfree(spd->pages); in splice_shrink_spd()
298 kfree(spd->partial); in splice_shrink_spd()