__lpfc_nvme_ls_req(9)
π __lpfc_nvme_ls_req π
okay so you're reading a page from the Kernel API Manual, bestie β specifically the one for __lpfc_nvme_ls_req(9), and honestly? she's a whole vibe. let's get into it π«Ά
β¨ NAME β¨
__lpfc_nvme_ls_req β the generic service routine that issues an NVME LS request. that's it, that's the whole gig π
πΈ SYNOPSIS πΈ
int __lpfc_nvme_ls_req (struct lpfc_vport *vport , struct lpfc_nodelist
*ndlp , struct nvmefc_ls_req *pnvme_lsreq , void (*gen_req_cmp)(struct
lpfc_hba *phba, struct lpfc_iocbq *cmdwqe, struct lpfc_iocbq *rspwqe) );
like, yes, she takes four arguments and one of them is a whole function pointer. main character energy fr fr π
π ARGUMENTS π
vportβ the local port that's doing the issuing. she's the one sending the LS out into the world πndlpβ the remote port we're sending the LS to. the recipient, the addressee, the pen pal πpnvme_lsreqβ pointer to the LS request structure, handed over by the transport. so not her struct, she's just holding it for a friend π«Άgen_req_cmpβ the completion call-back. the "hey bestie we're done" function, iykyk β
π¦ DESCRIPTION π¦
so what does she actually do? glad you asked π
the routine validates the ndlp, builds buffers, and sends a GEN_REQUEST WQE so the LS operation can actually happen. no cap, that's the whole flow β validate, build, send. iconic honestly β¨
Return value : 0 means Success. anything non-zero is various error codes, and they show up in the form of -Exxx. so like, if you get a zero, slay π. if you get a -Exxx, that's your vibe check telling you something went sideways π
π SEE ALSO π
Kernel file ./drivers/scsi/lpfc/lpfc_nvme.c β go look, she's right there π₯
lpfc_nvme_create_queue(9)lpfc_nvme_delete_queue(9)lpfc_nvme_handle_lsreq(9)__lpfc_nvme_ls_req_cmp(9)lpfc_nvme_ls_req(9)__lpfc_nvme_ls_abort(9)lpfc_nvme_ls_abort(9)lpfc_nvme_prep_io_cmd(9)lpfc_nvme_prep_io_dma(9)lpfc_nvme_fcp_io_submit(9)lpfc_nvme_abort_fcreq_cmpl(9)lpfc_nvme_fcp_abort(9)lpfc_release_nvme_buf(9)lpfc_nvme_create_localport(9)lpfc_nvme_destroy_localport(9)lpfc_sli4_nvme_pci_offline_aborted(9)lpfc_sli4_nvme_xri_aborted(9)lpfc_nvme_wait_for_io_drain(9)lpfc_nvme_flush_abts_list(9)lpfc_nvmels_flush_cmd(9)
that's twenty of them. twenty!! a whole friend group π§
ngl, if you're deep in the lpfc NVMe code path at 2am, this page is your emotional support manpage. drink some water π§
kisses from ./drivers/scsi/lpfc, dated October 2026, and this little corner of the Kernel API Manual is officially closed β __lpfc_nvme_ls_req(9) out π
ππ
π¦ 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