net: add skb_data_unref() helper
[linux-2.6-block.git] / net / core / skbuff.c
index 766219011aeaf5782df9d624696d273ef6c1577c..b99127712e6704dda41636014db46096da171bfd 100644 (file)
@@ -1115,9 +1115,7 @@ static void skb_release_data(struct sk_buff *skb, enum skb_drop_reason reason,
        struct skb_shared_info *shinfo = skb_shinfo(skb);
        int i;
 
-       if (skb->cloned &&
-           atomic_sub_return(skb->nohdr ? (1 << SKB_DATAREF_SHIFT) + 1 : 1,
-                             &shinfo->dataref))
+       if (!skb_data_unref(skb, shinfo))
                goto exit;
 
        if (skb_zcopy(skb)) {