fcoe_check_wait_queue(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… fcoe_check_wait_queue β€” a Kernel API Manual moment

okay bestie, we're in the Kernel API Manual today and the star of the show is fcoe_check_wait_queue(9), which is literally just out here Attempt to clear the transmit backlog. that's the whole name, that's the whole vibe. πŸŽ€


✨ SYNOPSIS ✨

void fcoe_check_wait_queue (struct fc_lport *lport , struct sk_buff *skb
);

like, yes, the line break is really like that. copy it exactly, i'm not joking. πŸ™ˆ


🫢 ARGUMENTS 🫢

  • lport β€” the local port whose backlog we're clearing out. this is the one holding the queue we're about to unclog. main character energy fr. πŸ‘‘
  • skb β€” the received FIP packet. yes, it's a parameter, and yes, it just shows up like that. πŸ’…

πŸ’– DESCRIPTION πŸ’–

so the way this works: it empties the wait_queue, dequeues the head of the wait_queue queue, and calls fcoe_start_io for each packet. one by one, slay by slay. ✨

if all skb have been transmitted, it returns the qlen. cute, correct, iconic.

if an error occurs, ngl, it restores wait_queue so it can try again later and returns -1. a little comeback arc, we love to see it. 😭

now the wait_queue lore: it's used when the skb transmit fails. the failed skb goes into the wait_queue, and that queue gets emptied either by the timer function or by the next skb transmit. so like, it never just sits there rotting β€” something always comes to collect it. πŸ¦‹

heads up β€” a failed transmit drops the skb into the wait_queue, and the empty-out happens via the timer function or the next skb transmit. that's the mechanism, don't forget it. πŸ’€

🌈 SEE ALSO 🌈

kernel file ./drivers/scsi/fcoe/fcoe_transport.c β€” go read the source bestie, it's all in there:


that's the whole page, no notes. πŸ’œ this came from ./drivers/scsi/fcoe, dated October 2026, in the Kernel API Manual, and it goes by fcoe_check_wait_queue(9). mwah, bye bestie πŸ“πŸ§šπŸŒŸ

πŸ“¦ where this page comes from