lpfc_oas_lun_status_show(9)
π lpfc_oas_lun_status_show β the manual page, but make it make sense
okay so real talk, this one's from the Kernel API Manual β that's the manual name, bestie, we're in kernel-doc territory now π«Ά β and it's a sysfs show callback. Yes, another one. Yes, we're still gonna read it properly.
β¨ NAME β¨
lpfc_oas_lun_status_show β returns the status of the Optimized Access Storage (OAS) lun... and like, specifically the one that got returned by the lpfc_oas_lun_show function. That's it. That's the whole gig. It's giving "little helper that exists purely to answer one question" energy and honestly? iconic π
π¦ SYNOPSIS π¦
ssize_t lpfc_oas_lun_status_show (struct device *dev , struct
device_attribute *attr , char *buf );
three args, one return type, no cap. ssize_t is the return, and the whole thing takes a struct device *, a struct device_attribute *, and a char *. Slay β¨
π ARGUMENTS π
devβ this is the class device, and plot twist: it gets converted into a Scsi_host. sodevwalks in as a device and leaves as something else entirely. main character transformation arc, honestly π¦attrβ the device attribute. and no, we don't use it. it's literally just here for the vibes. not me showing up to the function call and contributing nothing ππbufβ the buffer where the info gets passed along. this is the one that actually does the work, the actual carrier of the message π
π RETURN π
it returns the size of the formatted string. that's the answer. that's the whole return value. no hidden lore, no secret second meaning β the size of the formatted string, periodt π
lowkey obsessed with how many kernel functions are just "I return how many bytes I wrote" and everyone acts normal about it. it's fine. it's fine. ngl it's actually kind of elegant π₯
π SEE ALSO π
the kernel file we're living in is ./drivers/scsi/lpfc/lpfc_attr.c β that's home base, bestie π β¨
and now for the friend group. this is a big friend group. like a whole group chat with 100+ members and everybody's @-ing everybody. taking attendance fr fr:
lpfc_jedec_to_ascii(9), lpfc_drvr_version_show(9), lpfc_enable_fip_show(9), lpfc_info_show(9), lpfc_serialnum_show(9), lpfc_temp_sensor_show(9), lpfc_modeldesc_show(9), lpfc_modelname_show(9), lpfc_programtype_show(9), lpfc_vportnum_show(9), lpfc_fwrev_show(9), lpfc_hdw_show(9), lpfc_option_rom_version_show(9), lpfc_link_state_show(9), lpfc_sli4_protocol_show(9), lpfc_oas_supported_show(9), lpfc_link_state_store(9), lpfc_num_discovered_ports_show(9), lpfc_issue_lip(9), lpfc_do_offline(9), lpfc_reset_pci_bus(9), lpfc_selective_reset(9), lpfc_issue_reset(9), lpfc_sli4_pdev_status_reg_wait(9), lpfc_sli4_pdev_reg_request(9), lpfc_nport_evt_cnt_show(9), lpfc_board_mode_show(9), lpfc_board_mode_store(9), lpfc_get_hba_info(9), lpfc_max_rpi_show(9), lpfc_used_rpi_show(9), lpfc_max_xri_show(9), lpfc_used_xri_show(9), lpfc_max_vpi_show(9), lpfc_used_vpi_show(9), lpfc_npiv_info_show(9), lpfc_poll_show(9), lpfc_poll_store(9), lpfc_sriov_hw_max_virtfn_show(9), lpfc_enable_bbcr_set(9), lpfc_wwn_set(9), lpfc_oas_tgt_show(9), lpfc_oas_tgt_store(9), lpfc_oas_priority_show(9), lpfc_oas_priority_store(9), lpfc_oas_vpt_show(9), lpfc_oas_vpt_store(9), lpfc_oas_lun_state_show(9), lpfc_oas_lun_state_store(9), lpfc_oas_lun_state_set(9), lpfc_oas_lun_get_next(9), lpfc_oas_lun_state_change(9), lpfc_oas_lun_show(9), lpfc_oas_lun_store(9), lpfc_nodev_tmo_show(9), lpfc_nodev_tmo_init(9), lpfc_update_rport_devloss_tmo(9), lpfc_nodev_tmo_set(9), lpfc_devloss_tmo_set(9), lpfc_tgt_queue_depth_set(9), lpfc_restrict_login_init(9), lpfc_restrict_login_set(9), lpfc_topology_store(9), lpfc_static_vport_show(9), lpfc_link_speed_store(9), lpfc_link_speed_init(9), lpfc_aer_support_store(9), lpfc_aer_cleanup_state(9), lpfc_sriov_nr_virtfn_store(9), lpfc_request_firmware_upgrade_store(9), lpfc_request_firmware_upgrade_init(9), lpfc_force_rscn_store(9), lpfc_force_rscn_init(9), lpfc_fcp_imax_store(9), lpfc_fcp_imax_init(9), lpfc_cq_max_proc_limit_store(9), lpfc_cq_max_proc_limit_init(9), lpfc_fcp_cpu_map_show(9), lpfc_fcp_cpu_map_store(9), lpfc_fcp_cpu_map_init(9), lpfc_cpumask_irq_mode_init(9), lpfc_irq_chann_show(9), lpfc_sg_seg_cnt_show(9), lpfc_sg_seg_cnt_init(9), sysfs_ctlreg_write(9), sysfs_ctlreg_read(9), sysfs_mbox_write(9), sysfs_mbox_read(9), lpfc_alloc_sysfs_attr(9), lpfc_free_sysfs_attr(9), lpfc_get_host_symbolic_name(9), lpfc_get_host_port_id(9), lpfc_get_host_port_type(9), lpfc_get_host_port_state(9), lpfc_get_host_speed(9), lpfc_get_host_fabric_name(9), lpfc_get_stats(9), lpfc_reset_stats(9), lpfc_get_enc_info(9), lpfc_get_node_by_target(9), lpfc_get_starget_port_id(9), lpfc_get_starget_node_name(9), lpfc_get_starget_port_name(9), lpfc_set_rport_loss_tmo(9), lpfc_set_vport_symbolic_name(9), lpfc_hba_log_verbose_init(9), lpfc_get_hba_function_mode(9), lpfc_get_cfgparam(9), lpfc_nvme_mod_param_dep(9), lpfc_get_vport_cfgparam(9)
okay yes that was a lot but we got through it together π«Ά every single one accounted for, nobody left on read π
π§ signing off π§
source is ./drivers/scsi/lpfc, dated October 2026, and the page itself is lpfc_oas_lun_status_show(9). that's the footer, that's the wrap, and honestly? we ate. go read lpfc_oas_lun_show(9) next, it's literally right there in the list πβ¨πΈ
π¦ 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