lpfc_issue_els_logo(9)
π lpfc_issue_els_logo β from the Kernel API Manual, bestie
okay so picture this: you're deep in the kernel, the file is ./drivers/scsi/lpfc/lpfc_els.c, and somebody needs to send a LOGO. this page is the whole lore. it lives in the Kernel API Manual, the header literally says lpfc_issue_els_logo(9), and we're about to break it all the way down π
β¨ NAME β¨
lpfc_issue_els_logo β Issue a logo to an node on a vport
(yes, "an node", we don't fix the kernel's grammar, we respect it π«Ά)
πΈ SYNOPSIS πΈ
int lpfc_issue_els_logo (struct lpfc_vport *vport , struct lpfc_nodelist
*ndlp , uint8_t retry );
π¦ ARGUMENTS π¦
vportβ pointer to a virtual N_Port data structure. that's your vport bestie πndlpβ pointer to a node-list data structure. the node in question πretryβ number of retries to the command IOCB. how many second chances the command IOCB gets π
π₯ DESCRIPTION π₯
so what this routine actually does is construct and issue an ELS Logout (LOGO) iocb command to a remote node β and that remote node is referred to by an ndlp on a vport. it builds the payload of the IOCB, sets up the ndlp state properly (like, properly properly), and then invokes the lpfc_sli_issue_iocb routine to send out the LOGO ELS command. chef's kiss β¨
heads up, this part matters: thendlpreference count will be incremented by 1 for holding thendlp, and the reference tondlpwill be stored into thendlpfield of the IOCB β all so the completion callback function for the LOGO ELS command has something to work with. no cap π
and lowkey the most important bit: callers of this routine are expected to unregister the RPI first. like, before you call it. that's on you, not on this function π
Return code:
0β successfully issued logo π1β failed to issue logo π
β SEE ALSO β
Kernel file ./drivers/scsi/lpfc/lpfc_els.c and, like, the entire extended universe of functions. all of them, we're not skipping a single one π«‘
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_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_nport(9),lpfc_fabric_abort_hba(9)lpfc_sli4_vport_delete_els_xri_aborted(9),lpfc_sli4_els_xri_aborted(9)
π§ the sign-off π§
and that's the whole page, periodt π it came out of ./drivers/scsi/lpfc, dated October 2026, and the page itself is lpfc_issue_els_logo(9) from the Kernel API Manual β go unregister that RPI first, bestie, and slay ππβ¨
π¦ 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