lpfc_mbx_cm...read_fcf_rec(9)
π lpfc_mbx_cm...read_fcf_rec(9) π
okay so this is a page straight out of the Kernel API Manual, and honestly? she's a baddie. it's giving "the callback that handles the drama when FLOGI flops." let's get into it bestie π«Ά
β¨ NAME β¨
lpfc_mbx_cmpl_fcf_rr_read_fcf_rec β literally the "fcf roundrobin read_fcf mbox cmpl hdler." yes that's the whole name, no i'm not abbreviating it, she earned every letter π
πΈ SYNOPSIS πΈ
void lpfc_mbx_cmpl_fcf_rr_read_fcf_rec (struct lpfc_hba *phba ,
LPFC_MBOXQ_t *mboxq );
π¦ ARGUMENTS π¦
phbaβ pointer to lpfc hba data structure. the main character struct, we love her πmboxqβ pointer to mailbox object. the little envelope carrying our hopes and dreams β¨
π« DESCRIPTION π«
okay so boom: this is the callback function for the FLOGI failure roundrobin FCF failover read FCF record mailbox command, and it comes at you straight from the eligible FCF record bmask β like, it's the whole reason we're doing the failover at all. iykyk π
so here's the vibe check. if the FCF read back is not valid / not available, she doesn't spiral β she just fails through to retrying FLOGI to the currently registered FCF again. we try again, we move, periodt π
but if the FCF read back IS valid and available? oh she's working. she goes full main character and does the whole sequence:
- set the newly read FCF record to the failover FCF record π
- unregister the currently registered FCF record ποΈ
- copy the failover FCF record to the current FCF record π
- register the current FCF record β
...and then she proceeds to trying FLOGI on the new failover FCF. iconic behavior, honestly π
π₯ SEE ALSO π₯
the kernel file lives here, bestie:
./drivers/scsi/lpfc/lpfc_hbadisc.c
and here's the whole group chat β every single one of them, no one left on read π
lpfc_check_inactive_vmid_one(9),lpfc_check_inactive_vmid(9),lpfc_check_nlp_post_devloss(9)lpfc_dev_loss_tmo_handler(9),lpfc_sli4_post_dev_loss_tmo_handler(9),lpfc_alloc_fast_evt(9)lpfc_free_fast_evt(9),lpfc_send_fastpath_evt(9),lpfc_sli4_clear_fcf_rr_bmask(9)lpfc_fab_name_match(9),lpfc_sw_name_match(9),lpfc_mac_addr_match(9)__lpfc_update_fcf_record_pri(9),lpfc_copy_fcf_record(9),__lpfc_update_fcf_record(9)lpfc_register_fcf(9),lpfc_match_fcf_conn_list(9),lpfc_check_pending_fcoe_event(9)lpfc_sli4_new_fcf_random_select(9),lpfc_sli4_fcf_rec_mbox_parse(9),lpfc_sli4_log_fcf_record_info(9)lpfc_sli4_fcf_record_match(9),lpfc_sli4_fcf_rr_next_proc(9),lpfc_sli4_fcf_pri_list_del(9)lpfc_sli4_set_fcf_flogi_fail(9),lpfc_sli4_fcf_pri_list_add(9),lpfc_mbx_cmpl_fcf_scan_read_fcf_rec(9)lpfc_mbx_cmpl_read_fcf_rec(9),lpfc_init_vfi_cmpl(9),lpfc_issue_init_vfi(9)lpfc_init_vpi_cmpl(9),lpfc_issue_init_vpi(9),lpfc_start_fdiscs(9)lpfc_create_static_vport(9),lpfc_issue_gidpt(9),lpfc_initialize_node(9)lpfc_nlp_logo_unreg(9),lpfc_unreg_hba_rpis(9),lpfc_find_vport_by_vpid(9)lpfc_fcf_inuse(9),lpfc_unregister_vfi_cmpl(9),lpfc_unregister_fcfi_cmpl(9)lpfc_unregister_fcf_prep(9),lpfc_sli4_unregister_fcf(9),lpfc_unregister_fcf_rescan(9)lpfc_unregister_fcf(9),lpfc_unregister_unused_fcf(9),lpfc_read_fcf_conn_tbl(9)lpfc_read_fcoe_param(9),lpfc_get_rec_conf23(9),lpfc_parse_fcoe_conf(9)
okay that's the whole page, you ate that ngl π this little gem lives in ./drivers/scsi/lpfc, it's dated October 2026, and it answers to lpfc_mbx_cm...read_fcf_rec(9). go forth and slay your FCF failover 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