From: Kent Overstreet Date: Thu, 11 Nov 2021 20:50:22 +0000 (-0500) Subject: bcachefs: Ensure btree node cache is not more than half dirty X-Git-Tag: io_uring-6.7-2023-11-10~119^2~525 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=637de729fc86effe021bd067cccd68efd07f59c0;p=linux-block.git bcachefs: Ensure btree node cache is not more than half dirty Tweak journal reclaim to ensure the btree node cache isn't more than half dirty so that memory reclaim can always make progress - the same as we do for the btree key cache. Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/journal_reclaim.c b/fs/bcachefs/journal_reclaim.c index e8b7ed8e1333..0f3c103e63ee 100644 --- a/fs/bcachefs/journal_reclaim.c +++ b/fs/bcachefs/journal_reclaim.c @@ -640,6 +640,9 @@ static int __bch2_journal_reclaim(struct journal *j, bool direct, bool kicked) if (fifo_free(&j->pin) <= 32) min_nr = 1; + if (atomic_read(&c->btree_cache.dirty) * 2 > c->btree_cache.used) + min_nr = 1; + min_key_cache = min(bch2_nr_btree_keys_need_flush(c), (size_t) 128); trace_and_count(c, journal_reclaim_start, c,