vdo_allow_re...y_mode_entry(9)
π vdo_allow_read_only_mode_entry(9) β like, the whole manual page, bestie β¨
okay so real talk, this is a page straight outta the Kernel API Manual, and the function is vdo_allow_read_only_mode_entry. yes the title up top is truncated as vdo_allow_re...y_mode_entry(9) because apparently even kernel docs get the ellipsis treatment π but we're spelling the whole thing out here. let's GO π
β¨ NAME β¨
vdo_allow_read_only_mode_entry β this one lets the notifier actually put the VDO into read-only mode, which is basically the undo button for vdo_wait_until_not_entering_read_only_mode(). it's giving "you may now proceed" energy π«Ά
πΈ SYNOPSIS πΈ
void vdo_allow_read_only_mode_entry (struct vdo_completion *parent );
π¦ ARGUMENTS π¦
parentβ the object we're gonna notify once the whole thing is done. like the designated bestie who gets the text when it's over π
π₯ DESCRIPTION π₯
so picture this: some thread tried to put the vdo into read-only mode while notifications were disallowed. rude, honestly. but not to worry β that whole thing gets done when this method is called. the way that works is: if that happens, the parent does not get notified until the vdo has actually entered read-only mode AND attempted to save the super block. no cap, no shortcuts, the notification waits its turn. π
π§ CONTEXT π§
okay this part is important, do not skip it β
this method may only be called from the admin thread. like, that's the rule. periodt. π
π SEE ALSO π
the full squad, in the order they showed up, no one left out π Kernel file ./drivers/md/dm-vdo/vdo.c 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), vdo_format(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_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)
and that's the page!! tysm for reading, ily, go call this from the admin thread and nowhere else π
this masterpiece lives in ./drivers/md/dm-vdo and it's stamped October 2026 β mwah, xoxo, the kernel docs committee π
π¦ 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