Lines Matching refs:spd
185 struct splice_pipe_desc *spd) in splice_to_pipe() argument
187 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()
214 if (!--spd->nr_pages) in splice_to_pipe()
223 spd->spd_release(spd, page_nr++); in splice_to_pipe()
253 int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) in splice_grow_spd() argument
257 spd->nr_pages_max = buffers; in splice_grow_spd()
261 spd->pages = kmalloc_array(buffers, sizeof(struct page *), GFP_KERNEL); in splice_grow_spd()
262 spd->partial = kmalloc_array(buffers, sizeof(struct partial_page), in splice_grow_spd()
265 if (spd->pages && spd->partial) in splice_grow_spd()
268 kfree(spd->pages); in splice_grow_spd()
269 kfree(spd->partial); in splice_grow_spd()
273 void splice_shrink_spd(struct splice_pipe_desc *spd) in splice_shrink_spd() argument
275 if (spd->nr_pages_max <= PIPE_DEF_BUFFERS) in splice_shrink_spd()
278 kfree(spd->pages); in splice_shrink_spd()
279 kfree(spd->partial); in splice_shrink_spd()