datapath: move make_writable helper into common code
[cascardo/ovs.git] / datapath / linux / compat / skbuff-openvswitch.c
index 65ea747..66cc614 100644 (file)
@@ -124,3 +124,16 @@ skb_zerocopy(struct sk_buff *to, struct sk_buff *from, int len, int hlen)
 }
 #endif
 #endif
+
+#ifndef HAVE_SKB_ENSURE_WRITABLE
+int skb_ensure_writable(struct sk_buff *skb, int write_len)
+{
+       if (!pskb_may_pull(skb, write_len))
+               return -ENOMEM;
+
+       if (!skb_cloned(skb) || skb_clone_writable(skb, write_len))
+               return 0;
+
+       return pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
+}
+#endif