Message ID | 003001d09146$c124b150$436e13f0$@samsung.com |
---|---|
State | Accepted |
Delegated to: | Richard Weinberger |
Headers | show |
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/
Am 26.05.2015 um 13:23 schrieb Chao Yu: > Ping. > > Add Cc Richard Weinberger. Patch looks good to me. Artem, if you don't mind I'd pick it up for the 4.2 queue. Thanks, //richard >> -----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/ >
On Tue, 2015-05-26 at 13:29 +0200, Richard Weinberger wrote: > Am 26.05.2015 um 13:23 schrieb Chao Yu: > > Ping. > > > > Add Cc Richard Weinberger. > > Patch looks good to me. > Artem, if you don't mind I'd pick it up for the 4.2 queue. Yes, please, thanks! Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
Am 27.05.2015 um 09:27 schrieb Artem Bityutskiy: > On Tue, 2015-05-26 at 13:29 +0200, Richard Weinberger wrote: >> Am 26.05.2015 um 13:23 schrieb Chao Yu: >>> Ping. >>> >>> Add Cc Richard Weinberger. >> >> Patch looks good to me. >> Artem, if you don't mind I'd pick it up for the 4.2 queue. > > Yes, please, thanks! Applied! Thanks, //richard
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; }
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(-)