Lines Matching refs:spd
186 struct splice_pipe_desc *spd) in splice_to_pipe() argument
188 unsigned int spd_pages = spd->nr_pages; in splice_to_pipe()
204 buf->page = spd->pages[page_nr]; in splice_to_pipe()
205 buf->offset = spd->partial[page_nr].offset; in splice_to_pipe()
206 buf->len = spd->partial[page_nr].len; in splice_to_pipe()
207 buf->private = spd->partial[page_nr].private; in splice_to_pipe()
208 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()
254 int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd) in splice_grow_spd() argument
258 spd->nr_pages_max = buffers; in splice_grow_spd()
262 spd->pages = kmalloc_array(buffers, sizeof(struct page *), GFP_KERNEL); in splice_grow_spd()
263 spd->partial = kmalloc_array(buffers, sizeof(struct partial_page), in splice_grow_spd()
266 if (spd->pages && spd->partial) in splice_grow_spd()
269 kfree(spd->pages); in splice_grow_spd()
270 kfree(spd->partial); in splice_grow_spd()
274 void splice_shrink_spd(struct splice_pipe_desc *spd) in splice_shrink_spd() argument
276 if (spd->nr_pages_max <= PIPE_DEF_BUFFERS) in splice_shrink_spd()
279 kfree(spd->pages); in splice_shrink_spd()
280 kfree(spd->partial); in splice_shrink_spd()