fc_invoke_resp(9)
β¨ NAME β¨
Okay bestie, welcome to fc_invoke_resp(9) from the kernel API manual β and its whole personality is literally just invoke ep->resp(). That's the assignment. That's the mission. Slay. π«Ά
πΈ SYNOPSIS πΈ
bool fc_invoke_resp (struct fc_exch *ep , struct fc_seq *sp , struct
fc_frame *fp );
π ARGUMENTS π
epβ the exchange to be operated on. The main-character exchange, if you will.spβ the sequence pointer to pass through to->resp. It's giving "just forwarding this along."fpβ the frame pointer to pass through to->resp. Same energy: straight through, no detours.
π¦ NOTES π¦
Okay, careful-reading era, because these notes are lowkey important:
- It is assumed that after initialization finished β and yes, this means the first unlock of
ex_lockafterfc_exch_allocβep->respandep->argare modified only viafc_seq_set_resp. This guarantees that none of these two variables changes ifep->resp_active > 0. π«‘ - If an
fc_seq_set_respcall is busy modifyingep->respandep->argwhen this function is invoked, the firstspin_lock_bhcall in this function will wait untilfc_seq_set_resphas finished modifying these variables. - Since
fc_exch_doneinvokesfc_seq_set_resp, it is guaranteed that thatep->respwon't be invoked afterfc_exch_donehas returned. - The response handler itself may invoke
fc_exch_done, which will clear theep->resppointer. - Return value: returns
trueif and only ifep->resphas been invoked. That's the vibe check:truemeans it actually ran. π
π₯ SEE ALSO π₯
Kernel file ./drivers/scsi/libfc/fc_exch.c β plus a whole friend group of kernel API references:
struct fc_exch_pool(9)struct fc_exch_mgr(9)struct fc_exch_mgr_anchor(9)fc_exch_name_lookup(9)fc_exch_rctl_name(9)fc_exch_hold(9)fc_exch_setup_hdr(9)fc_exch_release(9)fc_exch_timer_cancel(9)fc_exch_timer_set_locked(9)fc_exch_timer_set(9)fc_exch_done_locked(9)fc_exch_ptr_get(9)fc_exch_ptr_set(9)fc_exch_delete(9)fc_seq_send(9)fc_seq_alloc(9)fc_seq_start_next_locked(9)fc_seq_start_next(9)fc_exch_abort_locked(9)fc_seq_exch_abort(9)fc_exch_timeout(9)fc_exch_em_alloc(9)fc_exch_alloc(9)fc_exch_find(9)fc_exch_done(9)fc_exch_resp(9)fc_seq_lookup_recip(9)fc_seq_lookup_orig(9)fc_exch_set_addr(9)fc_seq_els_rsp_send(9)fc_seq_send_last(9)fc_seq_send_ack(9)fc_exch_send_ba_rjt(9)fc_exch_recv_abts(9)fc_seq_assign(9)fc_seq_release(9)fc_exch_recv_req(9)fc_exch_recv_seq_resp(9)fc_exch_recv_resp(9)fc_exch_abts_resp(9)fc_exch_recv_bls(9)fc_seq_ls_acc(9)fc_seq_ls_rjt(9)fc_exch_reset(9)fc_exch_pool_reset(9)fc_exch_mgr_reset(9)fc_exch_lookup(9)fc_exch_els_rec(9)fc_exch_rrq_resp(9)fc_exch_seq_send(9)fc_exch_rrq(9)fc_exch_els_rrq(9)fc_exch_update_stats(9)fc_exch_mgr_add(9)fc_exch_mgr_destroy(9)fc_exch_mgr_del(9)fc_exch_mgr_list_clone(9)fc_exch_mgr_alloc(9)fc_exch_mgr_free(9)fc_find_ema(9)fc_exch_recv(9)fc_exch_init(9)fc_setup_exch_mgr(9)fc_destroy_exch_mgr(9)
Source/version: ./drivers/scsi/libfc Β· date: October 2026 β that's the cute little sign-off, 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