• Home
  • Raw
  • Download

Lines Matching refs:spd

1774 static void sock_spd_release(struct splice_pipe_desc *spd, unsigned int i)  in sock_spd_release()  argument
1776 put_page(spd->pages[i]); in sock_spd_release()
1798 static bool spd_can_coalesce(const struct splice_pipe_desc *spd, in spd_can_coalesce() argument
1802 return spd->nr_pages && in spd_can_coalesce()
1803 spd->pages[spd->nr_pages - 1] == page && in spd_can_coalesce()
1804 (spd->partial[spd->nr_pages - 1].offset + in spd_can_coalesce()
1805 spd->partial[spd->nr_pages - 1].len == offset); in spd_can_coalesce()
1811 static bool spd_fill_page(struct splice_pipe_desc *spd, in spd_fill_page() argument
1817 if (unlikely(spd->nr_pages == MAX_SKB_FRAGS)) in spd_fill_page()
1825 if (spd_can_coalesce(spd, page, offset)) { in spd_fill_page()
1826 spd->partial[spd->nr_pages - 1].len += *len; in spd_fill_page()
1830 spd->pages[spd->nr_pages] = page; in spd_fill_page()
1831 spd->partial[spd->nr_pages].len = *len; in spd_fill_page()
1832 spd->partial[spd->nr_pages].offset = offset; in spd_fill_page()
1833 spd->nr_pages++; in spd_fill_page()
1841 struct splice_pipe_desc *spd, bool linear, in __splice_segment() argument
1862 if (spd_fill_page(spd, pipe, page, &flen, poff, in __splice_segment()
1879 struct splice_pipe_desc *spd, struct sock *sk) in __skb_splice_bits() argument
1891 offset, len, spd, in __skb_splice_bits()
1904 offset, len, spd, false, sk, pipe)) in __skb_splice_bits()
1913 struct splice_pipe_desc *spd) in skb_socket_splice() argument
1926 ret = splice_to_pipe(pipe, spd); in skb_socket_splice()
1947 struct splice_pipe_desc spd = { in skb_splice_bits() local
1962 if (__skb_splice_bits(skb, pipe, &offset, &tlen, &spd, sk)) in skb_splice_bits()
1973 if (__skb_splice_bits(frag_iter, pipe, &offset, &tlen, &spd, sk)) in skb_splice_bits()
1978 if (spd.nr_pages) in skb_splice_bits()
1979 ret = splice_cb(sk, pipe, &spd); in skb_splice_bits()