Messages in this thread Patch in this message | | | Subject | [PATCH v8 06/17] mm: Refactoring in workingset_init() | From | Kirill Tkhai <> | Date | Tue, 03 Jul 2018 18:09:36 +0300 |
| |
Use prealloc_shrinker()/register_shrinker_prepared() instead of register_shrinker(). This will be used in next patch.
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com> Tested-by: Shakeel Butt <shakeelb@google.com> --- mm/workingset.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mm/workingset.c b/mm/workingset.c index a466e731231d..b16489c60471 100644 --- a/mm/workingset.c +++ b/mm/workingset.c @@ -507,16 +507,17 @@ static int __init workingset_init(void) pr_info("workingset: timestamp_bits=%d max_order=%d bucket_order=%u\n", timestamp_bits, max_order, bucket_order); - /* list_lru lock nests inside the IRQ-safe i_pages lock */ - ret = __list_lru_init(&shadow_nodes, true, true, &shadow_nodes_key); + ret = prealloc_shrinker(&workingset_shadow_shrinker); if (ret) goto err; - ret = register_shrinker(&workingset_shadow_shrinker); + /* list_lru lock nests inside the IRQ-safe i_pages lock */ + ret = __list_lru_init(&shadow_nodes, true, true, &shadow_nodes_key); if (ret) goto err_list_lru; + register_shrinker_prepared(&workingset_shadow_shrinker); return 0; err_list_lru: - list_lru_destroy(&shadow_nodes); + free_prealloced_shrinker(&workingset_shadow_shrinker); err: return ret; }
| |