skb_head_is_locked(9)
π skb_head_is_locked(9) β Kernel API Manual bestie check π
πΈ NAME πΈ
skb_head_is_locked β determine if the skb->head is locked down π
β¨ SYNOPSIS β¨
bool skb_head_is_locked (const struct sk_buff *skb );
π«Ά ARGUMENTS π«Ά
skbβ the skb to check. Thatβs literally the whole assignment, bestie π
π¦ DESCRIPTION π¦
okay so hereβs the lore: the head on skbs build around a head frag can be removed if they are not cloned. This function returns true if the skb head is locked down due to either being allocated via kmalloc, or by being a clone with multiple references to the head. no cap, thatβs the vibe check π₯
π SEE ALSO π
the whole skb extended universe is here, fr fr:
- Kernel file
./include/linux/skbuff.h,skb checksums(9),skb_frag_size(9),skb_frag_size_set(9),skb_frag_size_add(9),skb_frag_size_sub(9),skb_frag_must_loop(9),skb_frag_foreach_page(9),struct skb_shared_hwtstamps(9),dataref and headerless skbs(9),Basic sk_buff geometry(9),struct sk_buff(9),skb_pfmemalloc(9),skb_dst(9),skb_dstref_steal(9),skb_dstref_restore(9),skb_dst_set(9),skb_dst_set_noref(9),skb_dst_is_noref(9),skb_napi_id(9),skb_unref(9),kfree_skb(9),alloc_skb(9),skb_fclone_busy(9),alloc_skb_fclone(9), skb_pad(9),skb_queue_empty(9),skb_queue_empty_lockless(9),skb_queue_is_last(9),skb_queue_is_first(9),skb_queue_next(9),skb_queue_prev(9),skb_get(9),skb_cloned(9),skb_header_cloned(9),__skb_header_release(9),skb_shared(9),skb_share_check(9),skb_unshare(9),skb_peek(9),__skb_peek(9),skb_peek_next(9),skb_peek_tail(9),skb_queue_len(9),skb_queue_len_lockless(9),__skb_queue_head_init(9),skb_queue_splice(9),skb_queue_splice_init(9),skb_queue_splice_tail(9),skb_queue_splice_tail_init(9),__skb_queue_after(9),__skb_queue_head(9),__skb_queue_tail(9),__skb_dequeue(9),__skb_dequeue_tail(9),skb_len_add(9),__skb_fill_netmem_desc(9),skb_fill_page_desc(9),skb_fill_page_desc_noacc(9),skb_headroom(9),skb_tailroom(9),skb_availroom(9),skb_reserve(9),skb_tailroom_reserve(9),skb_reset_transport_header_careful(9),skb_set_transport_header_careful(9),pskb_trim_unique(9),skb_orphan(9),skb_orphan_frags(9),__skb_queue_purge_reason(9),netdev_alloc_frag(9),netdev_alloc_skb(9),__dev_alloc_pages(9),__dev_alloc_page(9),dev_page_is_reusable(9),skb_propagate_pfmemalloc(9),skb_frag_off(9),skb_frag_off_add(9),skb_frag_off_set(9),skb_frag_off_copy(9),skb_frag_net_iov(9),skb_frag_page(9),skb_frag_netmem(9),skb_frag_address(9),skb_frag_address_safe(9),skb_frag_phys(9),skb_frag_page_copy(9),__skb_frag_dma_map(9),skb_clone_writable(9),skb_cow(9),skb_cow_head(9),skb_padto(9),__skb_put_padto(9),skb_put_padto(9),skb_linearize(9),skb_has_shared_frag(9),skb_linearize_cow(9),skb_postpull_rcsum(9),skb_postpush_rcsum(9),skb_push_rcsum(9),pskb_trim_rcsum(9),skb_needs_linearize(9),skb_get_timestamp(9),skb_data_move(9),skb_postpull_data_move(9),skb_postpush_data_move(9),skb_complete_tx_timestamp(9),skb_tstamp_tx(9),skb_tx_timestamp(9),skb_complete_wifi_ack(9),skb_checksum_complete(9),struct skb_ext(9),skb_checksum_none_assert(9)
π cute sign-off: source/version is ./include/linux, date stamp says October 2026, and this manual entry is skb_head_is_locked(9). now go forth and vibe-check those skb heads, bestie π
π¦ 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