write_sequnlock_bh(9)
π 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 aseqlock_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
- 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