skb_clone_sk - create clone of skb, and take reference to socket
struct sk_buff * skb_clone_sk(struct sk_buff * skb);
This function creates a clone of a buffer that holds a reference on sk_refcnt. Buffers created via this function are meant to be returned using sock_queue_err_skb, or free via kfree_skb.
When passing buffers allocated with this function to sock_queue_err_skb it is necessary to wrap the call with sock_hold/sock_put in order to prevent the socket from being released prior to being enqueued on the sk_error_queue.
|January 2017||Kernel Hackers Manual 4.8.|