bool osc_page_cache_shrink_enabled = true;
#ifdef HAVE_SHRINKER_COUNT
-static struct shrinker osc_cache_shrinker = {
+static struct ll_shrinker_ops osc_cache_sh_ops = {
.count_objects = osc_cache_shrink_count,
.scan_objects = osc_cache_shrink_scan,
.seeks = DEFAULT_SEEKS,
return osc_cache_shrink_count(shrinker, sc);
}
-static struct shrinker osc_cache_shrinker = {
+static struct ll_shrinker_ops osc_cache_sh_ops = {
.shrink = osc_cache_shrink,
.seeks = DEFAULT_SEEKS,
};
#endif
+static struct shrinker *osc_cache_shrinker;
+
static int __init osc_init(void)
{
unsigned int reqpool_size;
if (rc)
RETURN(rc);
- rc = register_shrinker(&osc_cache_shrinker);
- if (rc)
- GOTO(out_kmem, rc);
+ osc_cache_shrinker = ll_shrinker_create(&osc_cache_sh_ops, 0,
+ "osc_cache");
+ if (IS_ERR(osc_cache_shrinker))
+ GOTO(out_kmem, rc = PTR_ERR(osc_cache_shrinker));
/* This is obviously too much memory, only prevent overflow here */
if (osc_reqpool_mem_max >= 1 << 12 || osc_reqpool_mem_max == 0)
out_req_pool:
ptlrpc_free_rq_pool(osc_rq_pool);
out_shrinker:
- unregister_shrinker(&osc_cache_shrinker);
+ shrinker_free(osc_cache_shrinker);
out_kmem:
lu_kmem_fini(osc_caches);
class_unregister_type(LUSTRE_OSC_NAME);
ptlrpc_free_rq_pool(osc_rq_pool);
osc_stop_grant_work();
- unregister_shrinker(&osc_cache_shrinker);
+ shrinker_free(osc_cache_shrinker);
lu_kmem_fini(osc_caches);
}