bcachefs: Fix journal_flush_done()

journal_flush_done() was overwriting did_work, thus occasionally
returning false when it did do work and occasional assertions in the
shutdown sequence because we didn't completely flush the key cache.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
This commit is contained in:
Kent Overstreet 2022-02-25 22:14:35 -05:00 committed by Kent Overstreet
parent fa8e94faee
commit cb59811183

View File

@ -759,7 +759,8 @@ static int journal_flush_done(struct journal *j, u64 seq_to_flush,
mutex_lock(&j->reclaim_lock);
*did_work = journal_flush_pins(j, seq_to_flush, 0, 0) != 0;
if (journal_flush_pins(j, seq_to_flush, 0, 0))
*did_work = true;
spin_lock(&j->lock);
/*