diff options
author | 2025-03-18 15:50:00 +0800 | |
---|---|---|
committer | 2025-03-24 09:50:35 -0400 | |
commit | 5d361ae5afeef075264b369c413dbed0a0d04cfa (patch) | |
tree | ac06107610b7996111da30cefc4da5860c4a0927 | |
parent | bcachefs: Kill JOURNAL_ERRORS() (diff) | |
download | wireguard-linux-5d361ae5afeef075264b369c413dbed0a0d04cfa.tar.xz wireguard-linux-5d361ae5afeef075264b369c413dbed0a0d04cfa.zip |
bcachefs: Add missing smp_rmb()
The smp_rmb() guarantees that reads from reservations.counter
occur before accessing cur_entry_u64s. It's paired with the
atomic64_try_cmpxchg in journal_entry_open.
Signed-off-by: Alan Huang <mmpgouride@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/journal.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/bcachefs/journal.h b/fs/bcachefs/journal.h index ab68c5c4d8d8..47828771f9c2 100644 --- a/fs/bcachefs/journal.h +++ b/fs/bcachefs/journal.h @@ -350,8 +350,10 @@ static inline int journal_res_get_fast(struct journal *j, /* * Check if there is still room in the current journal - * entry: + * entry, smp_rmb() guarantees that reads from reservations.counter + * occur before accessing cur_entry_u64s: */ + smp_rmb(); if (new.cur_entry_offset + res->u64s > j->cur_entry_u64s) return 0; |