skb_cow_data(9)
β¨ skb_cow_data(9) β¨
okay bestie, this is the Kernel API Manual entry for skb_cow_data(9) β yes, the manual name is folded in right here, and weβre about to make socket-buffer writability make sense. π«Ά
π¦ NAME π¦
skb_cow_data β check that a socket bufferβs data buffers are writable. β¨
π SYNOPSIS π
int skb_cow_data (struct sk_buff *skb , int tailbits , struct sk_buff
**trailer );
πΈ ARGUMENTS πΈ
skbβ the socket buffer youβre checking, bestie.tailbitsβ the amount of trailing space to be added.trailerβ returned pointer to the skb where thetailbitsspace begins.
π DESCRIPTION π
So the whole point: make sure the data buffers attached to a socket buffer are writable. If theyβre not, private copies are made of the data buffers, and the socket buffer is set to use these instead. π
If tailbits is given, make sure thereβs space to write tailbits bytes of data beyond the current end of the socket buffer. Then trailer will be set to point to the skb in which this space begins. π
The number of scatterlist elements required to completely map the COW'd and extended socket buffer will be returned. Thatβs the return value, no cap. β¨
π SEE ALSO π
Kernel file ./net/core/skbuff.c, plus this entire icon squad of cross-references β every single one, periodt:
drop_reasons_register_subsys(9),drop_reasons_unregister_subsys(9),skb_panic(9),napi_skb_cache_get_bulk(9),__build_skb(9),build_skb_around(9)__napi_build_skb(9),napi_build_skb(9),__alloc_skb(9),__netdev_alloc_skb(9),napi_alloc_skb(9),skb_pp_cow_data(9)skb_pp_frag_ref(9),__kfree_skb(9),sk_skb_reason_drop(9),skb_tx_error(9),consume_skb(9),__consume_stateless_skb(9)napi_consume_skb(9),alloc_skb_for_msg(9),skb_morph(9),skb_copy_ubufs(9),skb_clone(9),skb_copy(9)__pskb_copy_fclone(9),pskb_expand_head(9),skb_expand_head(9),skb_copy_expand(9),__skb_pad(9),pskb_put(9)skb_put(9),skb_push(9),skb_pull(9),skb_pull_data(9),skb_trim(9),__pskb_pull_tail(9)skb_copy_bits(9),skb_store_bits(9),skb_zerocopy(9),skb_dequeue(9),skb_dequeue_tail(9)skb_queue_purge_reason(9),skb_rbtree_purge(9),skb_queue_head(9),skb_queue_tail(9),skb_unlink(9)skb_append(9),skb_split(9),skb_shift(9),skb_prepare_seq_read(9),skb_seq_read(9)skb_abort_seq_read(9),skb_copy_seq_read(9),skb_find_text(9),skb_pull_rcsum(9),skb_segment(9)skb_to_sgvec(9),skb_clone_sk(9),skb_partial_csum_set(9),skb_checksum_setup(9)skb_checksum_maybe_trim(9),skb_checksum_trimmed(9),skb_try_coalesce(9),skb_scrub_packet(9)skb_eth_pop(9),skb_eth_push(9),skb_mpls_push(9),skb_mpls_pop(9)skb_mpls_update_lse(9),skb_mpls_dec_ttl(9),alloc_skb_with_frags(9)skb_condense(9),__skb_ext_alloc(9),__skb_ext_set(9),skb_ext_add(9)skb_attempt_defer_free(9),skb_splice_from_iter(9)
cute sign-off: source: ./net/core, date: October 2026, page: skb_cow_data(9). byeee π
π¦
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms