]> err.no Git - linux-2.6/blobdiff - net/sunrpc/socklib.c
ipv6: syncookies: free reqsk on xfrm_lookup error
[linux-2.6] / net / sunrpc / socklib.c
index 9c40d67c1ffb1143731ecbdaed2b5c32eb7c41ff..a661a3acb37e682dba442b98ec1c9729a75f7f5f 100644 (file)
@@ -24,7 +24,7 @@
  * Possibly called several times to iterate over an sk_buff and copy
  * data out of it.
  */
-size_t xdr_skb_read_bits(skb_reader_t *desc, void *to, size_t len)
+size_t xdr_skb_read_bits(struct xdr_skb_reader *desc, void *to, size_t len)
 {
        if (len > desc->count)
                len = desc->count;
@@ -34,6 +34,7 @@ size_t xdr_skb_read_bits(skb_reader_t *desc, void *to, size_t len)
        desc->offset += len;
        return len;
 }
+EXPORT_SYMBOL_GPL(xdr_skb_read_bits);
 
 /**
  * xdr_skb_read_and_csum_bits - copy and checksum from skb to buffer
@@ -43,7 +44,7 @@ size_t xdr_skb_read_bits(skb_reader_t *desc, void *to, size_t len)
  *
  * Same as skb_read_bits, but calculate a checksum at the same time.
  */
-static size_t xdr_skb_read_and_csum_bits(skb_reader_t *desc, void *to, size_t len)
+static size_t xdr_skb_read_and_csum_bits(struct xdr_skb_reader *desc, void *to, size_t len)
 {
        unsigned int pos;
        __wsum csum2;
@@ -66,12 +67,12 @@ static size_t xdr_skb_read_and_csum_bits(skb_reader_t *desc, void *to, size_t le
  * @copy_actor: virtual method for copying data
  *
  */
-ssize_t xdr_partial_copy_from_skb(struct xdr_buf *xdr, unsigned int base, skb_reader_t *desc, skb_read_actor_t copy_actor)
+ssize_t xdr_partial_copy_from_skb(struct xdr_buf *xdr, unsigned int base, struct xdr_skb_reader *desc, xdr_skb_read_actor copy_actor)
 {
        struct page     **ppage = xdr->pages;
        unsigned int    len, pglen = xdr->page_len;
        ssize_t         copied = 0;
-       int             ret;
+       size_t          ret;
 
        len = xdr->head[0].iov_len;
        if (base < len) {
@@ -137,6 +138,7 @@ copy_tail:
 out:
        return copied;
 }
+EXPORT_SYMBOL_GPL(xdr_partial_copy_from_skb);
 
 /**
  * csum_partial_copy_to_xdr - checksum and copy data
@@ -148,13 +150,13 @@ out:
  */
 int csum_partial_copy_to_xdr(struct xdr_buf *xdr, struct sk_buff *skb)
 {
-       skb_reader_t    desc;
+       struct xdr_skb_reader   desc;
 
        desc.skb = skb;
        desc.offset = sizeof(struct udphdr);
        desc.count = skb->len - desc.offset;
 
-       if (skb->ip_summed == CHECKSUM_UNNECESSARY)
+       if (skb_csum_unnecessary(skb))
                goto no_checksum;
 
        desc.csum = csum_partial(skb->data, desc.offset, skb->csum);
@@ -179,3 +181,4 @@ no_checksum:
                return -1;
        return 0;
 }
+EXPORT_SYMBOL_GPL(csum_partial_copy_to_xdr);