[PATCH] ubifs: fix to check error code of register_shrinker

Chao Yu chao2.yu at samsung.com
Tue May 26 04:23:02 PDT 2015


Ping.

Add Cc Richard Weinberger.

> -----Original Message-----
> From: linux-mtd [mailto:linux-mtd-bounces at lists.infradead.org] On Behalf Of Chao Yu
> Sent: Monday, May 18, 2015 4:43 PM
> To: dedekind1 at gmail.com; adrian.hunter at intel.com
> Cc: linux-mtd at lists.infradead.org; linux-kernel at vger.kernel.org
> Subject: [PATCH] ubifs: fix to check error code of register_shrinker
> 
> register_shrinker() in ubifs_init() can fail due to fail to call kzalloc.
> This patch fixes to check the return value of register_shrinker, otherwise
> our shrinker may be unregistered after ubifs initialized successfully.
> 
> Signed-off-by: Chao Yu <chao2.yu at samsung.com>
> ---
>  fs/ubifs/super.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c
> index 75e6f04..fa83d1b 100644
> --- a/fs/ubifs/super.c
> +++ b/fs/ubifs/super.c
> @@ -2245,7 +2245,9 @@ static int __init ubifs_init(void)
>  	if (!ubifs_inode_slab)
>  		return -ENOMEM;
> 
> -	register_shrinker(&ubifs_shrinker_info);
> +	err = register_shrinker(&ubifs_shrinker_info);
> +	if (err)
> +		goto out_slab;
> 
>  	err = ubifs_compressors_init();
>  	if (err)
> @@ -2269,6 +2271,7 @@ out_compr:
>  	ubifs_compressors_exit();
>  out_shrinker:
>  	unregister_shrinker(&ubifs_shrinker_info);
> +out_slab:
>  	kmem_cache_destroy(ubifs_inode_slab);
>  	return err;
>  }
> --
> 2.3.3
> 
> 
> 
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/




More information about the linux-mtd mailing list