lpfc_fabric_abort_nport(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_fabric_abort_nport(9) β€” from the Kernel API Manual, bestie

okay so this is a kernel API page, it lives in the 9 section of the manual, and honestly? it's a little baddie of a cleanup function. let's get into it πŸŽ€


✨ NAME ✨

lpfc_fabric_abort_nport β€” abort a ndlp's iocbs from the driver fabric iocb list 🫢


🌸 SYNOPSIS 🌸

void lpfc_fabric_abort_nport (struct lpfc_nodelist *ndlp );

that's it. that's the whole signature. no return value, it just does the thing πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • ndlp β€” pointer to a node-list data structure. literally just a pointer to a node-list data structure, bestie, that's the whole vibe ✨

πŸ”₯ DESCRIPTION πŸ”₯

okay so picture this: this routine aborts all the IOCBs associated with an ndlp from the driver's internal fabric IOCB list. iconic behavior honestly 😌

so that list? it contains fabric IOCBs that are to be issued to the ELS IOCB ring. like, they're queued up, waiting their turn, minding their own business.

what this abort function does is walk the fabric IOCB list, and for each IOCB it finds that's associated with the ndlp, it:

  1. removes that IOCB off the list 🧹
  2. sets the status field to IOSTAT_LOCAL_REJECT
  3. invokes the callback function associated with the IOCB πŸ“ž

so yeah β€” walk, yank, mark it rejected, call the callback. that's the whole little routine. no cap, it's that simple and it eats πŸ’–

ngl, the IOSTAT_LOCAL_REJECT part matters β€” every IOCB you pull off that list gets that status, so don't be surprised when the callback shows up with a rejection in hand πŸ™ˆ

🌈 SEE ALSO 🌈

fr fr go read these, they're all in the kernel file ./drivers/scsi/lpfc/lpfc_els.c and honestly the whole lpfc ELS friend group is here πŸ‘‘

lpfc_els_chk_latt(9), lpfc_prep_els_iocb(9), lpfc_issue_fabric_reglogin(9),
lpfc_issue_reg_vfi(9), lpfc_issue_unreg_vfi(9),
lpfc_check_clean_addr_bit(9), lpfc_cmpl_els_flogi_fabric(9),
lpfc_cmpl_els_flogi_nport(9), lpfc_cmpl_els_flogi(9),
lpfc_cmpl_els_link_down(9), lpfc_issue_els_flogi(9),
lpfc_els_abort_flogi(9), lpfc_initial_flogi(9), lpfc_initial_fdisc(9),
lpfc_more_plogi(9), lpfc_plogi_confirm_nport(9), lpfc_end_rscn(9),
lpfc_cmpl_els_rrq(9), lpfc_check_encryption(9), lpfc_cmpl_els_plogi(9),
lpfc_issue_els_plogi(9), lpfc_cmpl_els_prli(9), lpfc_issue_els_prli(9),
lpfc_rscn_disc(9), lpfc_adisc_done(9), lpfc_more_adisc(9),
lpfc_cmpl_els_adisc(9), lpfc_issue_els_adisc(9), lpfc_cmpl_els_logo(9),
lpfc_issue_els_logo(9), lpfc_cmpl_els_cmd(9), lpfc_reg_fab_ctrl_node(9),
lpfc_cmpl_els_disc_cmd(9), lpfc_issue_els_scr(9),
lpfc_issue_els_rscn(9), lpfc_issue_els_farpr(9), lpfc_issue_els_rdf(9),
lpfc_least_capable_settings(9), lpfc_cmpl_els_edc(9),
lpfc_cancel_retry_delay_tmo(9), lpfc_els_retry_delay(9),
lpfc_els_retry_delay_handler(9), lpfc_link_reset(9), lpfc_els_retry(9),
lpfc_els_free_data(9), lpfc_els_free_bpl(9), lpfc_els_free_iocb(9),
lpfc_cmpl_els_logo_acc(9), lpfc_mbx_cmpl_dflt_rpi(9),
lpfc_cmpl_els_rsp(9), lpfc_els_rsp_acc(9), lpfc_els_rsp_reject(9),
lpfc_els_rsp_adisc_acc(9), lpfc_els_rsp_prli_acc(9),
lpfc_els_rsp_rnid_acc(9), lpfc_els_clear_rrq(9),
lpfc_els_rsp_echo_acc(9), lpfc_els_disc_adisc(9),
lpfc_els_disc_plogi(9), lpfc_els_rcv_lcb(9), lpfc_els_flush_rscn(9),
lpfc_rscn_payload_check(9), lpfc_rscn_recovery_check(9),
lpfc_send_rscn_event(9), lpfc_els_rcv_rscn(9), lpfc_els_handle_rscn(9),
lpfc_els_rcv_flogi(9), lpfc_els_rcv_rnid(9), lpfc_els_rcv_echo(9),
lpfc_els_rcv_lirr(9), lpfc_els_rcv_rrq(9), lpfc_els_rsp_rls_acc(9),
lpfc_els_rcv_rls(9), lpfc_els_rcv_rtv(9), lpfc_send_rrq(9),
lpfc_els_rsp_rpl_acc(9), lpfc_els_rcv_rpl(9), lpfc_els_rcv_farp(9),
lpfc_els_rcv_farpr(9), lpfc_els_rcv_fan(9), lpfc_els_rcv_edc(9),
lpfc_els_timeout(9), lpfc_els_timeout_handler(9), lpfc_els_flush_cmd(9),
lpfc_els_flush_all_cmd(9), lpfc_send_els_failure_event(9),
lpfc_send_els_event(9), lpfc_display_fpin_wwpn(9),
lpfc_els_rcv_fpin_li(9), lpfc_els_rcv_fpin_del(9),
lpfc_els_rcv_fpin_peer_cgn(9), lpfc_els_rcv_fpin_cgn(9),
lpfc_els_unsol_buffer(9), lpfc_els_unsol_event(9),
lpfc_do_scr_ns_plogi(9), lpfc_cmpl_reg_new_vport(9),
lpfc_register_new_vport(9), lpfc_cancel_all_vport_retry_delay_timer(9),
lpfc_retry_pport_discovery(9), lpfc_fabric_login_reqd(9),
lpfc_cmpl_els_fdisc(9), lpfc_issue_els_fdisc(9),
lpfc_cmpl_els_npiv_logo(9), lpfc_issue_els_npiv_logo(9),
lpfc_fabric_block_timeout(9), lpfc_resume_fabric_iocbs(9),
lpfc_unblock_fabric_iocbs(9), lpfc_block_fabric_iocbs(9),
lpfc_cmpl_fabric_iocb(9), lpfc_issue_fabric_iocb(9),
lpfc_fabric_abort_vport(9), lpfc_fabric_abort_hba(9),
lpfc_sli4_vport_delete_els_xri_aborted(9), lpfc_sli4_els_xri_aborted(9)

and that's the whole page, bestie 🧚

πŸ’œ cute little sign-off: this one comes from the source tree at ./drivers/scsi/lpfc and it's dated October 2026. go forth and abort those fabric IOCBs responsibly. periodt. βœ¨πŸŽ€
πŸ“¦ where this page comes from