write_sequnlock_bh(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… write_sequnlock_bh(9) β€” like, the kernel API manual, but make it make sense πŸŽ€

okay bestie, welcome to the Kernel API Manual entry for write_sequnlock_bh β€” yes it's a real function, yes the name is a mouthful, no you're not dreaming ✨


🌸 NAME 🌸

write_sequnlock_bh β€” the one that ends a softirqs-disabled seqlock_t write section. periodt. πŸ’…


✨ SYNOPSIS ✨

void write_sequnlock_bh (seqlock_t *sl );

that's it. that's the whole call. no return value, she just does her thing 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • sl β€” a pointer to a seqlock_t, aka the lock you're saying bye to πŸ‘‹πŸ’–

πŸ”₯ DESCRIPTION πŸ”₯

so here's the tea β˜• β€” write_sequnlock_bh closes the seqlock_t write side critical section that you opened earlier with write_seqlock_bh. 🎬

and like, not just any critical section, okay? this one is serialized, non-preemptible, and softirqs-disabled β€” all three, bestie, it's giving full package πŸ’€βœ¨. so when you call this, you're officially done with all of that and you're handing the vibes back to the rest of the kernel. iconic behavior, no cap πŸ‘‘

⚠️ real talk: this is the closer. it pairs with write_seqlock_bh like an outfit and its matching bag πŸ‘œ β€” don't go calling it if you never opened the section, that's not the vibe.

πŸ¦‹ SEE ALSO πŸ¦‹

everything in the seqlock cinematic universe lives in the kernel file ./include/linux/seqlock.h, and honestly the whole friend group is here 🌈:

seqcount_init(9), SEQCNT_ZERO(9), __read_seqcount_begin(9), raw_read_seqcount_begin(9), read_seqcount_begin(9), raw_read_seqcount(9), raw_seqcount_try_begin(9), raw_seqcount_begin(9), __read_seqcount_retry(9), read_seqcount_retry(9), raw_write_seqcount_begin(9), raw_write_seqcount_end(9), write_seqcount_begin_nested(9), write_seqcount_begin(9), write_seqcount_end(9), raw_write_seqcount_barrier(9), write_seqcount_invalidate(9), SEQCNT_LATCH_ZERO(9), seqcount_latch_init(9), raw_read_seqcount_latch(9), read_seqcount_latch(9), raw_read_seqcount_latch_retry(9), read_seqcount_latch_retry(9), raw_write_seqcount_latch(9), write_seqcount_latch_begin(9), write_seqcount_latch(9), write_seqcount_latch_end(9), seqlock_init(9), DEFINE_SEQLOCK(9), read_seqbegin(9), read_seqretry(9), write_seqlock(9), write_sequnlock(9), write_seqlock_bh(9), write_seqlock_irq(9), write_sequnlock_irq(9), write_seqlock_irqsave(9), write_sequnlock_irqrestore(9), read_seqlock_excl(9), read_sequnlock_excl(9), read_seqlock_excl_bh(9), read_sequnlock_excl_bh(9), read_seqlock_excl_irq(9), read_sequnlock_excl_irq(9), read_seqlock_excl_irqsave(9), read_sequnlock_excl_irqrestore(9), read_seqbegin_or_lock(9), need_seqretry(9), done_seqretry(9), read_seqbegin_or_lock_irqsave(9), done_seqretry_irqrestore(9), scoped_seqlock_read(9)

like, the whole roster. iykyk πŸ’œ


okay and for the sign-off: this little beauty comes from the source ./include/linux and it's dated October 2026 πŸ“ β€” so yeah, future-y, but make it fashion. mwah πŸ’‹πŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from