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

Chao Yu
2015-05-26T11:24:17Z

Ping.

Add Cc Richard Weinberger.

> -----Original Message-----
> From: linux-mtd [mailto:linux-mtd-bounces@lists.infradead.org] On Behalf Of Chao Yu
> Sent: Monday, May 18, 2015 4:43 PM
> To: dedekind1@gmail.com; adrian.hunter@intel.com
> Cc: linux-mtd@lists.infradead.org; linux-kernel@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@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/