__lpfc_get_device_data(9)
π¦ __lpfc_get_device_data(9) β from the Kernel API Manual, bestie π
okay so picture this: you're deep in the kernel, you've got a host bus adapter, you've got lists, you've got WWPNs everywhere β and you just need the device data for one specific lun. That's this function. It's giving "search and rescue but make it SCSI" β¨
πΈ NAME πΈ
__lpfc_get_device_data β returns the device data for the specified lun π
β SYNOPSIS β
struct lpfc_device_data* __lpfc_get_device_data (struct lpfc_hba *phba ,
struct list_head *list , struct lpfc_name *vport_wwpn , struct lpfc_name
*target_wwpn , uint64_t lun );
π«Ά ARGUMENTS π«Ά
phbaβ pointer to the host bus adapter structure, the main character of this whole operation πlistβ point to the list you want searched. yes, "point," that's what the original says, we're not fixing it, we're honoring it πvport_wwpnβ pointer to the vport's wwpn information π¦target_wwpnβ pointer to the target's wwpn information πlunβ the lun on the target. that's your girl, that's who we're hunting for π
β¨ DESCRIPTION β¨
So what does it actually do? This routine searches the list you passed in for the specified lun's device data. Simple, clean, iconic. π
the caveat that matters, no cap: this function does not hold locks. like, at all. It is the responsibility of the caller to ensure the proper lock is held before calling the function. So lock it up yourself before you call her, bestie β she is not doing it for you π
Return codes:
NULLβ Error π- Pointer to
lpfc_device_dataβ Success π slay
π₯ SEE ALSO π₯
Kernel file ./drivers/scsi/lpfc/lpfc_scsi.c β go read the source, iykyk π
lpfc_sli4_set_rsp_sgl_last(9)lpfc_rampdown_queue_depth(9)lpfc_ramp_down_queue_handler(9)lpfc_scsi_dev_block(9)lpfc_new_scsi_buf_s3(9)lpfc_sli4_vport_delete_fcp_xri_aborted(9)lpfc_sli4_io_xri_aborted(9)lpfc_get_scsi_buf_s3(9)lpfc_get_scsi_buf_s4(9)lpfc_get_scsi_buf(9)lpfc_release_scsi_buf_s3(9)lpfc_release_scsi_buf_s4(9)lpfc_release_scsi_buf(9)lpfc_fcpcmd_to_iocb(9)lpfc_scsi_prep_dma_buf_s3(9)lpfc_bg_err_inject(9)lpfc_sc_to_bg_opcodes(9)lpfc_bg_err_opcodes(9)lpfc_bg_setup_bpl(9)lpfc_bg_setup_bpl_prot(9)lpfc_bg_setup_sgl(9)lpfc_bg_setup_sgl_prot(9)lpfc_prot_group_type(9)lpfc_bg_scsi_adjust_dl(9)lpfc_bg_scsi_prep_dma_buf_s3(9)lpfc_scsi_prep_dma_buf_s4(9)lpfc_bg_scsi_prep_dma_buf_s4(9)lpfc_scsi_prep_dma_buf(9)lpfc_bg_scsi_prep_dma_buf(9)lpfc_scsi_prep_cmnd_buf(9)lpfc_send_scsi_error_event(9)lpfc_scsi_unprep_dma_buf(9)lpfc_unblock_requests(9)lpfc_block_requests(9)lpfc_update_cmf_cmpl(9)lpfc_update_cmf_cmd(9)lpfc_handle_fcp_err(9)lpfc_fcp_io_cmd_wqe_cmpl(9)lpfc_scsi_cmd_iocb_cmpl(9)lpfc_scsi_prep_cmnd_buf_s3(9)lpfc_scsi_prep_cmnd_buf_s4(9)lpfc_scsi_prep_cmnd(9)lpfc_scsi_prep_task_mgmt_cmd_s3(9)lpfc_scsi_prep_task_mgmt_cmd_s4(9)lpfc_scsi_api_table_setup(9)lpfc_tskmgmt_def_cmpl(9)lpfc_check_pci_resettable(9)lpfc_info(9)lpfc_poll_rearm_timer(9)lpfc_poll_start_timer(9)lpfc_poll_timeout(9)lpfc_queuecommand(9)lpfc_abort_handler(9)lpfc_check_fcp_rsp(9)lpfc_send_taskmgmt(9)lpfc_chk_tgt_mapped(9)lpfc_reset_flush_io_context(9)lpfc_device_reset_handler(9)lpfc_target_reset_handler(9)lpfc_host_reset_handler(9)lpfc_sdev_init(9)lpfc_sdev_configure(9)lpfc_sdev_destroy(9)lpfc_create_device_data(9)lpfc_delete_device_data(9)lpfc_find_next_oas_lun(9)lpfc_enable_oas_lun(9)lpfc_disable_oas_lun(9)
that's the whole page, bestie, every last one of those (9) references accounted for π§π
sign-off era: this one lives in ./drivers/scsi/lpfc, dated October 2026, and it's filed under __lpfc_get_device_data(9) β periodt. π
π¦ 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