bcachefs: Mark newly allocated btree nodes as accessed
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 29 Apr 2021 20:55:26 +0000 (16:55 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:02 +0000 (17:09 -0400)
This was a major oversight - this means under memory pressure we can end
up reading in a btree node, then having it evicted before we get to use
it.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_cache.c

index 85c19e4e521682b786b2a17d1fb0f5d69b45a796..a13e5eef868eea62e7c8b07e37aba3134ed83e5d 100644 (file)
@@ -590,6 +590,7 @@ out:
        b->sib_u64s[1]          = 0;
        b->whiteout_u64s        = 0;
        bch2_btree_keys_init(b);
+       set_btree_node_accessed(b);
 
        bch2_time_stats_update(&c->times[BCH_TIME_btree_node_mem_alloc],
                               start_time);