linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mbcache: fix to detect failure of register_shrinker
@ 2016-05-16 15:16 Chao Yu
  2016-05-16 15:31 ` Jan Kara
  2016-07-05 20:16 ` Theodore Ts'o
  0 siblings, 2 replies; 6+ messages in thread
From: Chao Yu @ 2016-05-16 15:16 UTC (permalink / raw)
  To: tytso, jack; +Cc: viro, linux-ext4, linux-fsdevel, Chao Yu

From: Chao Yu <yuchao0@huawei.com>

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: Chao Yu <yuchao0@huawei.com>
---
 fs/mbcache.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/fs/mbcache.c b/fs/mbcache.c
index eccda3a..c5bd19f 100644
--- a/fs/mbcache.c
+++ b/fs/mbcache.c
@@ -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);
 
-- 
2.7.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-08-31 16:19 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-16 15:16 [PATCH] mbcache: fix to detect failure of register_shrinker Chao Yu
2016-05-16 15:31 ` Jan Kara
2016-07-05 20:16 ` Theodore Ts'o
2016-08-31 15:31   ` Chao Yu
2016-08-31 15:48     ` Theodore Ts'o
2016-08-31 16:19       ` Chao Yu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).