diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2020-12-19 18:05:09 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2020-12-19 18:05:09 -0500 |
commit | 80846e9c28e76774daf7d2d46115d73f108b98db (patch) | |
tree | 625f8757948c81571e6678279ddedc3c392862a2 /libbcachefs/journal_reclaim.h | |
parent | db931a4571817d7d61be6bce306f1d42f7cd3398 (diff) |
Update bcachefs sources to 5241335413 bcachefs: Fix for spinning in journal reclaim on startup
Diffstat (limited to 'libbcachefs/journal_reclaim.h')
-rw-r--r-- | libbcachefs/journal_reclaim.h | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/libbcachefs/journal_reclaim.h b/libbcachefs/journal_reclaim.h index f02caa3..adf1f5c 100644 --- a/libbcachefs/journal_reclaim.h +++ b/libbcachefs/journal_reclaim.h @@ -53,8 +53,11 @@ static inline void bch2_journal_pin_copy(struct journal *j, struct journal_entry_pin *src, journal_pin_flush_fn flush_fn) { - if (journal_pin_active(src)) - bch2_journal_pin_add(j, src->seq, dst, flush_fn); + /* Guard against racing with journal_pin_drop(src): */ + u64 seq = READ_ONCE(src->seq); + + if (seq) + bch2_journal_pin_add(j, seq, dst, flush_fn); } static inline void bch2_journal_pin_update(struct journal *j, u64 seq, |