summaryrefslogtreecommitdiff
path: root/libbcachefs/buckets.h
diff options
context:
space:
mode:
Diffstat (limited to 'libbcachefs/buckets.h')
-rw-r--r--libbcachefs/buckets.h10
1 files changed, 5 insertions, 5 deletions
diff --git a/libbcachefs/buckets.h b/libbcachefs/buckets.h
index 01f0b314..aefe6027 100644
--- a/libbcachefs/buckets.h
+++ b/libbcachefs/buckets.h
@@ -16,15 +16,15 @@
#define bucket_cmpxchg(g, new, expr) \
({ \
- u64 _v = READ_ONCE((g)->_mark.counter); \
+ u64 _v = atomic64_read(&(g)->_mark.v); \
struct bucket_mark _old; \
\
do { \
- (new).counter = _old.counter = _v; \
+ (new).v.counter = _old.v.counter = _v; \
expr; \
- } while ((_v = cmpxchg(&(g)->_mark.counter, \
- _old.counter, \
- (new).counter)) != _old.counter);\
+ } while ((_v = atomic64_cmpxchg(&(g)->_mark.v, \
+ _old.v.counter, \
+ (new).v.counter)) != _old.v.counter);\
_old; \
})