__skb_unlink, skb_unlink - remove an sk_buff from its list


SYNOPSIS

       #include <linux/skbuff.h>

       void __skb_unlink(struct sk_buff *skb, struct sk_buff_head
              *list);

       void skb_unlink(struct sk_buff *skb);


DESCRIPTION

       The  skb_unlink  function  is  a wrapper for __skb_unlink.
       __skb_unlink removes skb from its sk_buff_head.  It decre­
       ments  the  list  qlen  pointer,  and cleanly detaches the
       sk_buff from its queue.  This function  should  always  be
       used  instead of performing this task manually, as it pro­
       vides  a  clean,  standardized  way  of  manipulating   an
       sk_buff_head,  and provides interrupt disabling (see NOTES
       below.)  Most users will not call  __skb_unlink  directly,
       as it requires that two arguments be supplied and does not
       provide any interrupt handling.  skb_unlink determines the
       list  from  which  skb  should  be  detached, and disables
       interrupts.


RETURN VALUE

       None.


NOTES

       It is important to note the difference  between  not  only
       __skb_unlink  and skb_unlink, but all the __skb_ functions
       and their  skb_  counterparts.   Essentially,  the  __skb_
       functions  are  non-atomic,  and  should only be used with
       interrupts disabled.  As a convenience, the skb_ functions
       are  provided,  which  perform  interrupt disable / enable
       wrapper functionality in addition to performing their spe­
       cific tasks.


AVAILABILITY

       Linux 1.0+


SEE ALSO

       intro(9), skb_dequeue(9), skb_insert(9),
       skb_queue_head(9), skb_queue_tail(9)

       /usr/src/linux/net/core/skbuff.c
       /usr/src/linux/net/ipv4/af_inet.c
       /usr/src/linux/net/ipv4/ip_output.c
       /usr/src/linux/net/ipv4/tcp.c


AUTHOR

       Cyrus Durgin <cider@speakeasy.org>


Man(1) output converted with man2html