diff options
Diffstat (limited to 'mm/vmscan.c')
| -rw-r--r-- | mm/vmscan.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c index d257916f39e5..6d0cd2840cf0 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -805,6 +805,7 @@ EXPORT_SYMBOL(register_shrinker);  void unregister_shrinker(struct shrinker *shrinker)  {  	struct dentry *debugfs_entry; +	int debugfs_id;  	if (!(shrinker->flags & SHRINKER_REGISTERED))  		return; @@ -814,13 +815,13 @@ void unregister_shrinker(struct shrinker *shrinker)  	shrinker->flags &= ~SHRINKER_REGISTERED;  	if (shrinker->flags & SHRINKER_MEMCG_AWARE)  		unregister_memcg_shrinker(shrinker); -	debugfs_entry = shrinker_debugfs_remove(shrinker); +	debugfs_entry = shrinker_debugfs_detach(shrinker, &debugfs_id);  	mutex_unlock(&shrinker_mutex);  	atomic_inc(&shrinker_srcu_generation);  	synchronize_srcu(&shrinker_srcu); -	debugfs_remove_recursive(debugfs_entry); +	shrinker_debugfs_remove(debugfs_entry, debugfs_id);  	kfree(shrinker->nr_deferred);  	shrinker->nr_deferred = NULL;  | 
