summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-11-07 18:08:38 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2023-12-23 14:17:16 -0500
commitbf9aa61e690f3ccc3ad880dc05318a2f52d2f7fb (patch)
tree80f474b1efba03e8460847782a5e67829a54be73
parentbae7d62fd8ae484de53e796f2ee624ea37fcd8be (diff)
bcachefs: Unwritten journal buffers are always dirty
Ensure that journal bufs that haven't been written can't be reclaimed from the journal pin fifo, and can thus have new pins taken. Prep work for changing the btree write buffer to pull keys from the journal directly. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/journal_reclaim.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c
index bd33a7c9634c..dc415e0ec493 100644
--- a/fs/bcachefs/journal_reclaim.c
+++ b/fs/bcachefs/journal_reclaim.c
@@ -303,6 +303,7 @@ void bch2_journal_reclaim_fast(struct journal *j)
* all btree nodes got written out
*/
while (!fifo_empty(&j->pin) &&
+ j->pin.front <= j->seq_ondisk &&
!atomic_read(&fifo_peek_front(&j->pin).count)) {
j->pin.front++;
popped = true;