ibmvfc_tgt_a..._cancel_done(9)
π ibmvfc_tgt_a..._cancel_done(9)
okay so bestie, welcome to the Kernel API Manual, section 9 β aka the deep-lore corner of the kernel docs where the function names are long and the vibes are immaculate. Today's main character is ibmvfc_tgt_a..._cancel_done (yes the name is truncated with ... in the header, that's just how it's printed, don't come for her π).
β¨ NAME β¨
ibmvfc_tgt_adisc_cancel_done β the completion handler you call when you're cancelling an ADISC. that's it, that's the whole job. π¦
πΈ SYNOPSIS πΈ
void ibmvfc_tgt_adisc_cancel_done (struct ibmvfc_event *evt );
π ARGUMENTS π
evtβ theibmvfc event struct. the little event guy in question. she's the star of the show. β
π DESCRIPTION π
okay so the way this works is adorably simple: this handler is just here to cleanup this event struct. literally that's it. everything else? handled by the ADISC completion handler. she does not need to do the emotional labor, she just tidies up her own stuff and leaves the rest to the professionals. π
but here's the plot twist π β if the ADISC never actually comes back, we still have the timer running on the ADISC event struct, and that timer will fire and cause the CRQ to get reset. so like, worst case scenario it self-rescues. no cap, that's the safety net.
π SEE ALSO π
these are all in the kernel file ./drivers/scsi/ibmvscsi/ibmvfc-core.c, and honestly? the whole friend group. slay. π«Ά
ibmvfc_trc_start(9)ibmvfc_trc_end(9)ibmvfc_get_err_index(9)ibmvfc_get_cmd_error(9)ibmvfc_get_err_result(9)ibmvfc_retry_cmd(9)ibmvfc_get_ls_explain(9)ibmvfc_get_gs_explain(9)ibmvfc_get_fc_type(9)ibmvfc_set_tgt_action(9)ibmvfc_set_host_state(9)ibmvfc_set_host_action(9)ibmvfc_reinit_host(9)ibmvfc_del_tgt(9)ibmvfc_link_down(9)ibmvfc_init_host(9)ibmvfc_send_crq(9)ibmvfc_send_crq_init(9)ibmvfc_send_crq_init_complete(9)ibmvfc_init_event_pool(9)ibmvfc_free_event_pool(9)ibmvfc_free_queue(9)ibmvfc_release_crq_queue(9)ibmvfc_reenable_crq_queue(9)ibmvfc_reset_crq(9)ibmvfc_valid_event(9)ibmvfc_free_event(9)ibmvfc_vfc_eh_done(9)ibmvfc_complete_purge(9)ibmvfc_fail_request(9)ibmvfc_purge_requests(9)ibmvfc_hard_reset_host(9)__ibmvfc_reset_host(9)ibmvfc_reset_host(9)ibmvfc_retry_host_init(9)__ibmvfc_get_target(9)ibmvfc_get_target(9)ibmvfc_get_host_speed(9)ibmvfc_get_host_port_state(9)ibmvfc_set_rport_dev_loss_tmo(9)ibmvfc_release_tgt(9)ibmvfc_get_starget_node_name(9)ibmvfc_get_starget_port_name(9)ibmvfc_get_starget_port_id(9)ibmvfc_wait_while_resetting(9)ibmvfc_issue_fc_host_lip(9)ibmvfc_gather_partition_info(9)ibmvfc_set_login_info(9)__ibmvfc_get_event(9)ibmvfc_locked_done(9)ibmvfc_init_event(9)ibmvfc_map_sg_list(9)ibmvfc_map_sg_data(9)ibmvfc_timeout(9)ibmvfc_send_event(9)ibmvfc_log_error(9)ibmvfc_scsi_relogin(9)ibmvfc_scsi_done(9)ibmvfc_host_chkready(9)ibmvfc_queuecommand(9)ibmvfc_sync_completion(9)ibmvfc_bsg_timeout_done(9)ibmvfc_bsg_timeout(9)ibmvfc_bsg_plogi(9)ibmvfc_bsg_request(9)ibmvfc_reset_device(9)ibmvfc_match_rport(9)ibmvfc_match_target(9)ibmvfc_match_lun(9)ibmvfc_event_is_free(9)ibmvfc_wait_for_ops(9)ibmvfc_cancel_all(9)ibmvfc_match_key(9)ibmvfc_match_evt(9)ibmvfc_abort_task_set(9)ibmvfc_eh_abort_handler(9)ibmvfc_eh_device_reset_handler(9)ibmvfc_dev_cancel_all_noreset(9)ibmvfc_eh_target_reset_handler(9)ibmvfc_eh_host_reset_handler(9)ibmvfc_terminate_rport_io(9)ibmvfc_get_ae_desc(9)ibmvfc_get_link_state(9)ibmvfc_handle_async(9)ibmvfc_handle_crq(9)ibmvfc_scan_finished(9)ibmvfc_sdev_init(9)ibmvfc_target_alloc(9)ibmvfc_sdev_configure(9)ibmvfc_change_queue_depth(9)ibmvfc_show_log_level(9)ibmvfc_store_log_level(9)ibmvfc_read_trace(9)ibmvfc_next_async_crq(9)ibmvfc_next_crq(9)ibmvfc_interrupt(9)ibmvfc_tasklet(9)ibmvfc_init_tgt(9)ibmvfc_retry_tgt_init(9)ibmvfc_get_prli_rsp(9)ibmvfc_tgt_prli_done(9)ibmvfc_tgt_send_prli(9)ibmvfc_tgt_plogi_done(9)ibmvfc_tgt_send_plogi(9)ibmvfc_tgt_implicit_logout_done(9)__ibmvfc_tgt_get_implicit_logout_evt(9)ibmvfc_tgt_implicit_logout(9)ibmvfc_tgt_implicit_logout_and_del_done(9)ibmvfc_tgt_implicit_logout_and_del(9)ibmvfc_tgt_move_login_done(9)ibmvfc_tgt_move_login(9)ibmvfc_adisc_needs_plogi(9)ibmvfc_tgt_adisc_done(9)ibmvfc_init_passthru(9)ibmvfc_adisc_timeout(9)ibmvfc_tgt_adisc(9)ibmvfc_tgt_query_target_done(9)ibmvfc_tgt_query_target(9)ibmvfc_alloc_target(9)ibmvfc_alloc_targets(9)ibmvfc_discover_targets_done(9)ibmvfc_discover_targets(9)ibmvfc_npiv_login_done(9)ibmvfc_npiv_login(9)ibmvfc_npiv_logout_done(9)ibmvfc_npiv_logout(9)ibmvfc_dev_init_to_do(9)ibmvfc_dev_logo_to_do(9)__ibmvfc_work_to_do(9)ibmvfc_work_to_do(9)ibmvfc_log_ae(9)ibmvfc_tgt_add_nvme_rport(9)ibmvfc_tgt_add_rport(9)ibmvfc_do_work(9)ibmvfc_work(9)ibmvfc_alloc_queue(9)ibmvfc_init_crq(9)ibmvfc_free_mem(9)ibmvfc_alloc_mem(9)ibmvfc_rport_add_thread(9)ibmvfc_probe(9)ibmvfc_remove(9)ibmvfc_resume(9)ibmvfc_get_desired_dma(9)ibmvfc_module_init(9)ibmvfc_module_exit(9)
quick vibe check π β the source lives at ./drivers/scsi/ibmvscsi, dated October 2026, and that's genuinely the whole page. ty for coming to my ted talk, ily, bye bestie π§β¨π
π¦ 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