summaryrefslogtreecommitdiff
path: root/libbcachefs/journal_reclaim.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-12-19 18:05:09 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2020-12-19 18:05:09 -0500
commit80846e9c28e76774daf7d2d46115d73f108b98db (patch)
tree625f8757948c81571e6678279ddedc3c392862a2 /libbcachefs/journal_reclaim.h
parentdb931a4571817d7d61be6bce306f1d42f7cd3398 (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.h7
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,