vdo_format(9)
π vdo_format π
okay so real talk β this is a page out of the Kernel API Manual, and it's all about vdo_format, bestie. buckle up π
β¨ NAME β¨
vdo_format β the function that formats a block device so it can function as a brand-new VDO. yes, it's giving "first day of school" vibes for your device πΈ
π¦ SYNOPSIS π¦
int vdo_format (struct vdo *vdo , char **error_ptr );
like, that's the whole signature, no cap π
π ARGUMENTS π
vdoβ the vdo you're formatting. your main character, literally πerror_ptrβ where the reason for any failure during this call gets handed back to you. so when it goes wrong (and sometimes it does π), this is where the tea gets spilled.
π DESCRIPTION π
okay so here's the deal. this function must be called on a device before a VDO can be loaded for the very first time. think of it as the "unboxing" step β nothing works until you do it π«Ά
once a device has been formatted, the VDO can be loaded and shut down repeatedly. like, over and over, no drama, it just works β¨
and if you want a new VDO? then this function should be called again. fresh start, new era, periodt π«
β RETURN β
VDO_SUCCESS or an error. that's it, that's the whole vibe check π₯
π SEE ALSO π
this list is long bestie, grab a snack π β first up, the Kernel file itself:
./drivers/md/dm-vdo/vdo.c
and then the whole friend group, fr fr:
Introduction(9)vdo_initialize_device_registry_once(9)filter_vdos_locked(9)vdo_find_matching(9)initialize_thread_config(9)get_thread_name(9)vdo_make_thread(9)register_vdo(9)initialize_vdo(9)vdo_make(9)free_listeners(9)unregister_vdo(9)vdo_destroy(9)finish_reading_super_block(9)handle_super_block_read_error(9)vdo_load_super_block(9)vdo_get_backing_device(9)vdo_get_device_name(9)vdo_synchronous_flush(9)vdo_get_state(9)vdo_set_state(9)vdo_get_admin_state(9)record_vdo(9)continue_parent(9)handle_geometry_block_save_error(9)vdo_save_geometry_block(9)handle_super_block_save_error(9)vdo_save_super_block(9)vdo_save_components(9)vdo_register_read_only_listener(9)notify_vdo_of_read_only_mode(9)vdo_enable_read_only_entry(9)vdo_wait_until_not_entering_read_only_mode(9)as_notifier(9)finish_entering_read_only_mode(9)make_thread_read_only(9)vdo_allow_read_only_mode_entry(9)vdo_enter_read_only_mode(9)vdo_is_read_only(9)vdo_in_read_only_mode(9)vdo_in_recovery_mode(9)vdo_enter_recovery_mode(9)complete_synchronous_action(9)perform_synchronous_action(9)set_compression_callback(9)vdo_set_compressing(9)vdo_get_compressing(9)vdo_get_physical_blocks_allocated(9)vdo_get_physical_blocks_overhead(9)get_vdo_statistics(9)vdo_fetch_statistics_callback(9)vdo_fetch_statistics(9)vdo_get_callback_thread_id(9)vdo_dump_status(9)vdo_assert_on_admin_thread(9)vdo_assert_on_logical_zone_thread(9)vdo_assert_on_physical_zone_thread(9)vdo_get_physical_zone(9)
ngl, that's a lot of cross-references β but that's how you know it's well-connected ππ
and that's the whole page, bestie!! this one came straight out of ./drivers/md/dm-vdo, dated October 2026 β go forth and format responsibly, ily π§π
π¦ 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