closures: Better memory barriers
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 24 Oct 2023 18:46:58 +0000 (14:46 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 31 Oct 2023 01:48:22 +0000 (21:48 -0400)
commit2bce6368c46b835a133f7f4946eea9c4513828dd
tree9ddb4e9e192a1cb25c27d9b29641d2650be8f718
parentcd063c8b9e1e95560e90bac7816234d8b2ee2897
closures: Better memory barriers

atomic_(dec|sub)_return_release() are a thing now - use them.

Also, delete the useless barrier in set_closure_fn(): it's redundant
with the memory barrier in closure_put(0.

Since closure_put() would now otherwise just have a release barrier, we
also need a new barrier when the ref hits 0 -
smp_acquire__after_ctrl_dep().

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
include/linux/closure.h
lib/closure.c