ata_eh_set_pending(9)
π ata_eh_set_pending(9) β like, the kernel API manual, but make it make sense π
okay so bestie, welcome to the Kernel API Manual, section 9 (kernel functions, iykyk). Today's main character is ata_eh_set_pending, and honestly? she's a tiny little function with one job and she does it flawlessly. Let's get into it β¨
β¨ NAME β¨
ata_eh_set_pending β sets ATA_PFLAG_EH_PENDING and activates fast drain π
π¦ SYNOPSIS π¦
void ata_eh_set_pending (struct ata_port *ap , bool fastdrain );
πΈ ARGUMENTS πΈ
apβ the target ATA port π the one we're flagging, the main character of this whole operationfastdrainβ activate fast drain β‘ yes/no vibes, it's abool
π DESCRIPTION π
So here's the tea π: this function sets ATA_PFLAG_EH_PENDING and activates fast drain if fastdrain is non-zero and EH wasn't already pending before. Like, no double-flagging, that's not the vibe π
And what does fast drain even do? It ensures that EH kicks in in a timely manner β° periodt. That's it, that's the whole personality.
π LOCKING π
spin_lock_irqsave(host lock) β lock it down, bestie, no cap. You gotta be holding the host lock for this one π
π SEE ALSO π
Kernel file ./drivers/ata/libata-eh.c β and like, the entire extended friend group of libata error-handling functions. Buckle up, this list is long but every single one is iconic in her own way π«Ά
__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_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_about_to_do(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)
and that's the whole page, bestie!! π no notes, she ate. this lil writeup lives under ./drivers/ata in the Kernel API Manual, dated October 2026, and it's signed ata_eh_set_pending(9) β okay love you bye π
β¨π
π¦ 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