/* Possibly called several times to iterate over an sk_buff and copy data out of it.  */
size_t xdr_skb_read_bits(struct xdr_skb_reader *desc, void *to, size_t len)
/* Possibly called several times to iterate over an sk_buff and copy data out of it.  */
size_t xdr_skb_read_bits(struct xdr_skb_reader *desc, void *to, size_t len)
{
	if (len > desc->count)
		len = desc->count;
	if (unlikely(skb_copy_bits(desc->skb, desc->offset, to, len)))
		return 0;
	desc->count -= len;
	desc->offset += len;
	return len;
}