__ibmvfc_work_to_do(9)
π
__ibmvfc_work_to_do β like, is there task-level work to do or not??
okay bestie, welcome to the Kernel API Manual section for __ibmvfc_work_to_do, and honestly? the name says it all. it's the vibe check for the ibmvfc driver β it just looks around and is like "is there task level work to do?" πβ¨
and the no locking part? that's not decorative, that's the whole personality. it means this bad boy does not grab any locks while it's snooping around, so you better already be holding whatever you need to be holding. iykyk π₯
β¨ SYNOPSIS β¨
int __ibmvfc_work_to_do (struct ibmvfc_host *vhost );
that's it. that's the whole signature. cute, right? π
πΈ ARGUMENTS πΈ
vhostβ the ibmvfc host struct. literally the driver's host struct, that's what we're checking. nothing more, nothing less, no cap π
π RETURN π
1β yes bestie, there's work to do π₯0β nope, we're chilling, nothing to do π΄
that's the whole return contract. 1 if work to do, 0 if not. periodt π
π¦ SEE ALSO π¦
so like, this function lives in the kernel file ./drivers/scsi/ibmvscsi/ibmvfc-core.c and it has, um, a lot of sibling functions. like, an iconic amount. here's the entire friend group, go say hi π«Ά
ibmvfc_trc_start(9),ibmvfc_trc_end(9),ibmvfc_get_err_index(9),ibmvfc_get_cmd_error(9),ibmvfc_get_err_result(9),ibmvfc_retry_cmd(9),ibmvfc_get_ls_explain(9),ibmvfc_get_gs_explain(9),ibmvfc_get_fc_type(9),ibmvfc_set_tgt_action(9),ibmvfc_set_host_state(9),ibmvfc_set_host_action(9),ibmvfc_reinit_host(9),ibmvfc_del_tgt(9),ibmvfc_link_down(9),ibmvfc_init_host(9),ibmvfc_send_crq(9),ibmvfc_send_crq_init(9),ibmvfc_send_crq_init_complete(9),ibmvfc_init_event_pool(9),ibmvfc_free_event_pool(9),ibmvfc_free_queue(9),ibmvfc_release_crq_queue(9),ibmvfc_reenable_crq_queue(9),ibmvfc_reset_crq(9),ibmvfc_valid_event(9),ibmvfc_free_event(9),ibmvfc_vfc_eh_done(9),ibmvfc_complete_purge(9),ibmvfc_fail_request(9),ibmvfc_purge_requests(9),ibmvfc_hard_reset_host(9),__ibmvfc_reset_host(9),ibmvfc_reset_host(9),ibmvfc_retry_host_init(9),__ibmvfc_get_target(9),ibmvfc_get_target(9),ibmvfc_get_host_speed(9),ibmvfc_get_host_port_state(9),ibmvfc_set_rport_dev_loss_tmo(9),ibmvfc_release_tgt(9),ibmvfc_get_starget_node_name(9),ibmvfc_get_starget_port_name(9),ibmvfc_get_starget_port_id(9),ibmvfc_wait_while_resetting(9),ibmvfc_issue_fc_host_lip(9),ibmvfc_gather_partition_info(9),ibmvfc_set_login_info(9),__ibmvfc_get_event(9),ibmvfc_locked_done(9),ibmvfc_init_event(9),ibmvfc_map_sg_list(9),ibmvfc_map_sg_data(9),ibmvfc_timeout(9),ibmvfc_send_event(9),ibmvfc_log_error(9),ibmvfc_scsi_relogin(9),ibmvfc_scsi_done(9),ibmvfc_host_chkready(9),ibmvfc_queuecommand(9),ibmvfc_sync_completion(9),ibmvfc_bsg_timeout_done(9),ibmvfc_bsg_timeout(9),ibmvfc_bsg_plogi(9),ibmvfc_bsg_request(9),ibmvfc_reset_device(9),ibmvfc_match_rport(9),ibmvfc_match_target(9),ibmvfc_match_lun(9),ibmvfc_event_is_free(9),ibmvfc_wait_for_ops(9),ibmvfc_cancel_all(9),ibmvfc_match_key(9),ibmvfc_match_evt(9),ibmvfc_abort_task_set(9),ibmvfc_eh_abort_handler(9),ibmvfc_eh_device_reset_handler(9),ibmvfc_dev_cancel_all_noreset(9),ibmvfc_eh_target_reset_handler(9),ibmvfc_eh_host_reset_handler(9),ibmvfc_terminate_rport_io(9),ibmvfc_get_ae_desc(9),ibmvfc_get_link_state(9),ibmvfc_handle_async(9),ibmvfc_handle_crq(9),ibmvfc_scan_finished(9),ibmvfc_sdev_init(9),ibmvfc_target_alloc(9),ibmvfc_sdev_configure(9),ibmvfc_change_queue_depth(9),ibmvfc_show_log_level(9),ibmvfc_store_log_level(9),ibmvfc_read_trace(9),ibmvfc_next_async_crq(9),ibmvfc_next_crq(9),ibmvfc_interrupt(9),ibmvfc_tasklet(9),ibmvfc_init_tgt(9),ibmvfc_retry_tgt_init(9),ibmvfc_get_prli_rsp(9),ibmvfc_tgt_prli_done(9),ibmvfc_tgt_send_prli(9),ibmvfc_tgt_plogi_done(9),ibmvfc_tgt_send_plogi(9),ibmvfc_tgt_implicit_logout_done(9),__ibmvfc_tgt_get_implicit_logout_evt(9),ibmvfc_tgt_implicit_logout(9),ibmvfc_tgt_implicit_logout_and_del_done(9),ibmvfc_tgt_implicit_logout_and_del(9),ibmvfc_tgt_move_login_done(9),ibmvfc_tgt_move_login(9),ibmvfc_adisc_needs_plogi(9),ibmvfc_tgt_adisc_done(9),ibmvfc_init_passthru(9),ibmvfc_tgt_adisc_cancel_done(9),ibmvfc_adisc_timeout(9),ibmvfc_tgt_adisc(9),ibmvfc_tgt_query_target_done(9),ibmvfc_tgt_query_target(9),ibmvfc_alloc_target(9),ibmvfc_alloc_targets(9),ibmvfc_discover_targets_done(9),ibmvfc_discover_targets(9),ibmvfc_npiv_login_done(9),ibmvfc_npiv_login(9),ibmvfc_npiv_logout_done(9),ibmvfc_npiv_logout(9),ibmvfc_dev_init_to_do(9),ibmvfc_dev_logo_to_do(9),ibmvfc_work_to_do(9),ibmvfc_log_ae(9),ibmvfc_tgt_add_nvme_rport(9),ibmvfc_tgt_add_rport(9),ibmvfc_do_work(9),ibmvfc_work(9),ibmvfc_alloc_queue(9),ibmvfc_init_crq(9),ibmvfc_free_mem(9),ibmvfc_alloc_mem(9),ibmvfc_rport_add_thread(9),ibmvfc_probe(9),ibmvfc_remove(9),ibmvfc_resume(9),ibmvfc_get_desired_dma(9),ibmvfc_module_init(9),ibmvfc_module_exit(9)
ok but for real β notice howibmvfc_dev_init_to_do(9)andibmvfc_dev_logo_to_do(9)are in there too, plus the locked cousinibmvfc_work_to_do(9)? this whole family is obsessed with asking "is there work to do". iconic behavior honestly π
and that's the whole page, bestie. short and sweet, just like a good return 1; π
this gem is filed under ./drivers/scsi/ibmvscsi and stamped October 2026, brought to you by the very same __ibmvfc_work_to_do(9) crowd β mwah, love that for us ππ
π¦ 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