]> Git Repo - linux.git/blobdiff - mm/list_lru.c
fs: propagate shrinker::id to list_lru
[linux.git] / mm / list_lru.c
index c5217d84c6e10203aefd17dde10e17e72a5e0bb3..5aebbb9b2f5ba9535157f7bfb8193636049ad7d2 100644 (file)
@@ -546,12 +546,18 @@ static void memcg_destroy_list_lru(struct list_lru *lru)
 #endif /* CONFIG_MEMCG_KMEM */
 
 int __list_lru_init(struct list_lru *lru, bool memcg_aware,
-                   struct lock_class_key *key)
+                   struct lock_class_key *key, struct shrinker *shrinker)
 {
        int i;
        size_t size = sizeof(*lru->node) * nr_node_ids;
        int err = -ENOMEM;
 
+#ifdef CONFIG_MEMCG_KMEM
+       if (shrinker)
+               lru->shrinker_id = shrinker->id;
+       else
+               lru->shrinker_id = -1;
+#endif
        memcg_get_cache_ids();
 
        lru->node = kzalloc(size, GFP_KERNEL);
@@ -594,6 +600,9 @@ void list_lru_destroy(struct list_lru *lru)
        kfree(lru->node);
        lru->node = NULL;
 
+#ifdef CONFIG_MEMCG_KMEM
+       lru->shrinker_id = -1;
+#endif
        memcg_put_cache_ids();
 }
 EXPORT_SYMBOL_GPL(list_lru_destroy);
This page took 0.030531 seconds and 4 git commands to generate.