diff mbox

mbcache: fix to detect failure of register_shrinker

Message ID 1463411798-2597-1-git-send-email-chao@kernel.org
State Awaiting Upstream, archived
Headers show

Commit Message

Chao Yu May 16, 2016, 3:16 p.m. UTC
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(-)

Comments

Jan Kara May 16, 2016, 3:31 p.m. UTC | #1
On Mon 16-05-16 23:16:38, Chao Yu wrote:
> 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>

Thanks for fixing this. The patch looks good. You can add:

Reviewed-by: Jan Kara <jack@suse.cz>

								Honza
Theodore Ts'o July 5, 2016, 8:16 p.m. UTC | #2
On Mon, May 16, 2016 at 11:16:38PM +0800, Chao Yu wrote:
> 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>
> Reviewed-by: Jan Kara <jack@suse.cz>

Applied, thanks.  (Apologies for the delay; this patch slipped through
the cracks.)

					- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chao Yu Aug. 31, 2016, 3:31 p.m. UTC | #3
On 2016/7/6 4:16, Theodore Ts'o wrote:
> On Mon, May 16, 2016 at 11:16:38PM +0800, Chao Yu wrote:
>> 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>
>> Reviewed-by: Jan Kara <jack@suse.cz>
> 
> Applied, thanks.  (Apologies for the delay; this patch slipped through
> the cracks.)

Ping, didn't see it in mainline, is this patch still under testing now?

> 
> 					- Ted
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Theodore Ts'o Aug. 31, 2016, 3:48 p.m. UTC | #4
On Wed, Aug 31, 2016 at 11:31:17PM +0800, Chao Yu wrote:
> On 2016/7/6 4:16, Theodore Ts'o wrote:
> > On Mon, May 16, 2016 at 11:16:38PM +0800, Chao Yu wrote:
> >> 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>
> >> Reviewed-by: Jan Kara <jack@suse.cz>
> > 
> > Applied, thanks.  (Apologies for the delay; this patch slipped through
> > the cracks.)
> 
> Ping, didn't see it in mainline, is this patch still under testing now?

I'm sorry, I'm not sure how it got dropped, but it's not in mainline
and I'm not sure how it got dropped from the ext4 tree.

It's now queued up in the dev tree.

Thanks for checking back,

						- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Chao Yu Aug. 31, 2016, 4:19 p.m. UTC | #5
On 2016/8/31 23:48, Theodore Ts'o wrote:
> On Wed, Aug 31, 2016 at 11:31:17PM +0800, Chao Yu wrote:
>> On 2016/7/6 4:16, Theodore Ts'o wrote:
>>> On Mon, May 16, 2016 at 11:16:38PM +0800, Chao Yu wrote:
>>>> 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>
>>>> Reviewed-by: Jan Kara <jack@suse.cz>
>>>
>>> Applied, thanks.  (Apologies for the delay; this patch slipped through
>>> the cracks.)
>>
>> Ping, didn't see it in mainline, is this patch still under testing now?
> 
> I'm sorry, I'm not sure how it got dropped, but it's not in mainline
> and I'm not sure how it got dropped from the ext4 tree.
> 
> It's now queued up in the dev tree.
> 
> Thanks for checking back,

Thanks for merging! ;)

> 
> 						- Ted
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

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);