Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug

NAME

       skb_copy_expand - copy and expand sk_buff

SYNOPSIS

       struct sk_buff * skb_copy_expand  (const struct sk_buff * skb,
                                             int newheadroom, int newtailroom,
                                             gfp_t gfp_mask);

ARGUMENTS

       skb    buffer to copy

       newheadroom
              new free bytes at head

       newtailroom
              new free bytes at tail

       gfp_mask
              allocation priority

DESCRIPTION

       Make  a  copy  of  both  an  &sk_buff  and  its data and while doing so
       allocate additional space.

       This is used when the caller wishes to modify  the  data  and  needs  a
       private copy of the data to alter as well as more space for new fields.
       Returns NULL on failure or the pointer to the buffer  on  success.  The
       returned buffer has a reference count of 1.

       You must pass GFP_ATOMIC as the allocation priority if this function is
       called from an interrupt.

BUG ALERT

       ip_summed is not copied. Why  does  this  work?  Is  it  used  only  by
       netfilter in the cases when checksum is recalculated? --ANK