Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8913f343 authored by Chao Yu's avatar Chao Yu Committed by Theodore Ts'o
Browse files

mbcache: fix to detect failure of register_shrinker



register_shrinker in mb_cache_create may fail due to no memory. This
patch fixes to do the check of return value of register_shrinker and
handle the error case, otherwise mb_cache_create may return with no
error, but losing the inner shrinker.

Signed-off-by: default avatarChao Yu <yuchao0@huawei.com>
Reviewed-by: default avatarJan Kara <jack@suse.cz>
Signed-off-by: default avatarTheodore Ts'o <tytso@mit.edu>
parent 14fbd4aa
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -366,7 +366,11 @@ struct mb_cache *mb_cache_create(int bucket_bits)
	cache->c_shrink.count_objects = mb_cache_count;
	cache->c_shrink.scan_objects = mb_cache_scan;
	cache->c_shrink.seeks = DEFAULT_SEEKS;
	register_shrinker(&cache->c_shrink);
	if (register_shrinker(&cache->c_shrink)) {
		kfree(cache->c_hash);
		kfree(cache);
		goto err_out;
	}

	INIT_WORK(&cache->c_shrink_work, mb_cache_shrink_worker);