On emergency shutdown, we might still have dirty keys in the btree key
cache that need to be cleaned up properly.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
        list_splice(&bc->dirty, &bc->clean);
 
        list_for_each_entry_safe(ck, n, &bc->clean, list) {
+               bch2_journal_pin_drop(&c->journal, &ck->journal);
+               bch2_journal_preres_put(&c->journal, &ck->res);
+
                kfree(ck->k);
                kfree(ck);
                bc->nr_keys--;
 
        while (!fifo_empty(&j->pin) &&
               !atomic_read(&fifo_peek_front(&j->pin).count)) {
                BUG_ON(!list_empty(&fifo_peek_front(&j->pin).list));
+               BUG_ON(!list_empty(&fifo_peek_front(&j->pin).flushed));
                BUG_ON(!fifo_pop(&j->pin, temp));
                popped = true;
        }