diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2022-03-07 01:35:55 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2022-03-12 20:14:11 -0500 |
commit | e9b22ea68ad8b8462c1d079ad4798a01cbd5a64b (patch) | |
tree | e833bf856665332485996996928833423edcce63 | |
parent | 2b9848b7ce4ce50e675a9cbb2fd31939cdc2c048 (diff) |
bcachefs: Fix bch2_journal_flush_device_pins()
It's now legal for the pin fifo to be empty, which means this code needs
to be updated in order to not hit an assert.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/journal_reclaim.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c index ec565edbbfc5..df2c5d648f6a 100644 --- a/fs/bcachefs/journal_reclaim.c +++ b/fs/bcachefs/journal_reclaim.c @@ -809,10 +809,12 @@ int bch2_journal_flush_device_pins(struct journal *j, int dev_idx) seq = 0; spin_lock(&j->lock); - while (!ret && seq < j->pin.back) { + while (!ret) { struct bch_replicas_padded replicas; seq = max(seq, journal_last_seq(j)); + if (seq >= j->pin.back) + break; bch2_devlist_to_replicas(&replicas.e, BCH_DATA_journal, journal_seq_pin(j, seq)->devs); seq++; |