net: add and use skb_unclone_keeptruesize() helper
[sfrench/cifs-2.6.git] / net / core / skbuff.c
index 67a9188d8a49c83ce722f68d3064e9ba0545ea37..3ec42cdee16afe904258225a986c88d4b3379432 100644 (file)
@@ -3449,19 +3449,7 @@ EXPORT_SYMBOL(skb_split);
  */
 static int skb_prepare_for_shift(struct sk_buff *skb)
 {
-       int ret = 0;
-
-       if (skb_cloned(skb)) {
-               /* Save and restore truesize: pskb_expand_head() may reallocate
-                * memory where ksize(kmalloc(S)) != ksize(kmalloc(S)), but we
-                * cannot change truesize at this point.
-                */
-               unsigned int save_truesize = skb->truesize;
-
-               ret = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
-               skb->truesize = save_truesize;
-       }
-       return ret;
+       return skb_unclone_keeptruesize(skb, GFP_ATOMIC);
 }
 
 /**