fc_invoke_resp(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ 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_lock after fc_exch_alloc β€” ep->resp and ep->arg are modified only via fc_seq_set_resp. This guarantees that none of these two variables changes if ep->resp_active > 0. 🫑
  • If an fc_seq_set_resp call is busy modifying ep->resp and ep->arg when this function is invoked, the first spin_lock_bh call in this function will wait until fc_seq_set_resp has finished modifying these variables.
  • Since fc_exch_done invokes fc_seq_set_resp, it is guaranteed that that ep->resp won't be invoked after fc_exch_done has returned.
  • The response handler itself may invoke fc_exch_done, which will clear the ep->resp pointer.
  • Return value: returns true if and only if ep->resp has been invoked. That's the vibe check: true means it actually ran. πŸ’…

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./drivers/scsi/libfc/fc_exch.c β€” plus a whole friend group of kernel API references:


Source/version: ./drivers/scsi/libfc Β· date: October 2026 β€” that's the cute little sign-off, bestie πŸ’–πŸ§šβœ¨

πŸ“¦ where this page comes from