handle_supe...k_read_error(9)
π handle_super_block_read_error β Kernel API Manual (yes the header line got cut off in the title, we don't talk about it)
okay so bestie, this is one of those tiny lil kernel API pages that's basically a single function doing a very specific job. it lives in the Kernel API Manual, and it's short β like, suspiciously short β but every word is doing work so let's go π«Ά
β¨ NAME β¨
handle_super_block_read_error β literally what it says on the tin: it handles an error that happened while reading the super block π
β¨ SYNOPSIS β¨
void handle_super_block_read_error (struct vdo_completion *completion );
that's it. that's the whole signature. no return value, no sneaky extras, iconic behaviour honestly π
π ARGUMENTS π
completionβ the super block vio. that's the whole description, no cap, the manpage really just says "the super block vio" and dips π
πΈ DESCRIPTION πΈ
so here's the vibe: this error handler is registered in vdo_load_super_block β that's the function that hands it the job of catching things when the super block read goes sideways. it doesn't do the registering itself, it just gets registered there. important distinction, iykyk β¨
π¦ SEE ALSO π¦
bestie there are so many of these, buckle up. also the kernel file itself lives at ./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)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)
fr fr go read vdo_load_super_block(9) first if you actually want context, that's where the registration happens π
π sign-off π
this lil masterpiece comes from ./drivers/md/dm-vdo, dated October 2026. short page, big main character energy, we love her for it. mwah π
β¨π
π¦ 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