On Sat, Mar 21, 2026 at 07:54:39AM +0000, shuo chen wrote:
> The unlock_buffer and clear_and_wake_up_bit call same the three function in 
> the same sequence:
> 1.clear_bit_unlock 
> 2.smp_mb__after_atomic
> 3.wake_up_bit
> 
> So why don't unlock_buffer write the fllowing:
> void unlock_buffer(struct buffer_head *bh)
> {
>       clear_and_wake_up_bit(BH_Lock,&bh->b_state);
> }

Probably not the answer you want, but the `unlock_buffer()` has been
written the way it is back in `fc9b52cd8f5f4`, in 2008.

And the `clear_and_wake_up_bit()` function has been introduced only in
`8236b0ae31c83`, in 2018 (10 years later).

So, the root answer to your question is: the function didn't exist to be
used back then.

Judging from the commit message at `8236b0ae31c83` I would make the
educated guess that they are semantically identical, but I don't have
enough knowledge to make such a claim firmly.

Maybe the semantics is the same, order doesn't matter and everyone just
missed it. But maybe nobody changed because order changes semantics, I
don't know.

---
Sincerely,
Agatha Isabelle Moreira
C Developer | agatha.dev
Sourcehut: https://sr.ht/~devlavender/

_______________________________________________
Kernelnewbies mailing list
[email protected]
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to