bio_copy_data(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– bio_copy_data(9) β€” from the Kernel API Manual πŸŽ€

okay bestie, before we even start: this page is literally called bio_copy_data(9) and it lives in the Kernel API Manual, so yeah, you're in kernel-land now. grab a snack, we're copying data buffers πŸ¦‹


✨ NAME ✨

bio_copy_data β€” copy contents of data buffers from one bio to another πŸ’…

🌸 SYNOPSIS 🌸

void bio_copy_data (struct bio *dst , struct bio *src );

🫢 ARGUMENTS 🫢

  • dst β€” destination bio ✨
  • src β€” source bio 🌟

πŸ‘‘ DESCRIPTION πŸ‘‘

okay so the whole vibe here is: it copies, and it stops the moment it hits the end of either src or dst. Like, whichever one runs out of runway first, that's the finish line. no cap 😭

so bestie, it literally copies min(src->bi_size, dst->bi_size) bytes β€” or the equivalent for lists of bios πŸŽ€

πŸ”₯ SEE ALSO πŸ”₯

it's giving "linked list of related functions," so here's the full squad, in order, no skips πŸ’€:

Kernel file ./block/bio.c bio_reset(9), bio_reuse(9), bio_chain(9), bio_chain_and_submit(9), bio_alloc_bioset(9), bio_kmalloc(9), bio_truncate(9), guard_bio_eod(9), bio_put(9), bio_alloc_clone(9), bio_init_clone(9), bio_full(9), __bio_add_page(9), bio_add_virt_nofail(9), bio_add_page(9), bio_add_folio(9), bio_add_vmalloc_chunk(9), bio_add_vmalloc(9), bio_iov_iter_get_pages(9), bio_iov_iter_bounce(9), bio_iov_iter_unbounce(9), bio_await(9), submit_bio_wait(9), bdev_rw_virt(9), bio_endio(9), bio_split(9), bio_trim(9), bioset_init(9)


🌈 that's the whole page, bestie β€” every flag-free, option-free, gloriously tiny byte of it. iykyk πŸ’œ

anyway, this fairy godmother of a page comes to you from the ./block source, dated October 2026 🧚 β€” so like, see you there, slay, periodt πŸ’…πŸ¦‹

πŸ“¦ where this page comes from