ata_eh_about_to_do(9)
π ata_eh_about_to_do(9)
Okay so bestie, welcome to the Kernel API Manual β this one's a tiny little function from the ATA error-handling corner of the kernel, and it's way less scary than the name makes it sound. Let's get into it β¨
πΈ NAME πΈ
ata_eh_about_to_do β literally "about to perform eh_action", the pre-game hype speech before the actual EH work happens π¬
β¨ SYNOPSIS β¨
void ata_eh_about_to_do (struct ata_link *link , struct ata_device *dev
, unsigned int action );
π ARGUMENTS π
linkβ the target ATA link, i.e. the link we're doing the thing on π«Άdevβ the target ATA dev for the per-dev action. Heads up: this one can beNULLπactionβ the action that's about to be performed, the main character of this whole function π
π¦ DESCRIPTION π¦
So here's the vibe: this gets called just before performing EH actions, and its whole job is to clear the related bits in link->eh_info so that eh actions don't get unnecessarily repeated. That's it. That's the function. Lowkey iconic for how much chaos it prevents π
It's literally the "okay we're doing this now, stop asking" of the ATA error handler. No cap.
π LOCKING π
None. Zero. Nada. No locks here, bestie β go forth π§
Fr fr, the manpage says LOCKING: None. and we are not adding anything to that. Take it at face value π
π SEE ALSO π
The kernel file is ./drivers/ata/libata-eh.c, and here's the full squad of related functions β every single one, because we don't gatekeep π«Ά
__ata_ehi_push_desc(9), ata_ehi_push_desc(9), ata_ehi_clear_desc(9), ata_port_desc(9), ata_port_pbar_desc(9), ata_internal_cmd_timeout(9), ata_internal_cmd_timed_out(9), ata_eh_acquire(9), ata_eh_release(9), ata_scsi_error(9), ata_scsi_cmd_error_handler(9), ata_scsi_port_error_handler(9), ata_port_wait_eh(9), ata_eh_set_pending(9), ata_qc_schedule_eh(9), ata_std_sched_eh(9), ata_std_end_eh(9), ata_port_schedule_eh(9), ata_link_abort(9), ata_port_abort(9), __ata_port_freeze(9), ata_port_freeze(9), ata_eh_freeze_port(9), ata_eh_thaw_port(9), ata_eh_qc_complete(9), ata_eh_qc_retry(9), ata_dev_disable(9), ata_eh_detach_dev(9), ata_eh_done(9), ata_err_string(9), atapi_eh_tur(9), ata_eh_decide_disposition(9), ata_eh_request_sense(9), atapi_eh_request_sense(9), ata_eh_analyze_serror(9), ata_eh_analyze_tf(9), ata_eh_speed_down_verdict(9), ata_eh_speed_down(9), ata_eh_worth_retry(9), ata_eh_quiet(9), ata_eh_link_set_lpm(9), ata_eh_link_autopsy(9), ata_eh_autopsy(9), ata_get_cmd_name(9), ata_eh_link_report(9), ata_eh_report(9), ata_eh_set_mode(9), atapi_eh_clear_ua(9), ata_eh_maybe_retry_flush(9), ata_eh_recover(9), ata_eh_finish(9), ata_std_error_handler(9), ata_eh_handle_port_suspend(9), ata_eh_handle_port_resume(9)
π That's the whole page, bestie! π
This little masterpiece lives in ./drivers/ata, and it's dated October 2026 β so yeah, it's giving future icon energy π Go clear those eh_info bits and slay, periodt. π
β¨
π¦ 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