Message ID | CAPgLHd_=Y=YwCWSFjcacJ14yKUidmmJTHnKKibU6haoBUeNacA@mail.gmail.com |
---|---|
State | Accepted |
Commit | 7203db97b7378c2571797c13aa89327a2c487ea1 |
Headers | show |
Bump, Artem? I'm cleaning out my old email, and this patch looks obviously correct. On Thu, Jun 6, 2013 at 7:17 PM, Wei Yongjun <weiyj.lk@gmail.com> wrote: > From: Wei Yongjun <yongjun_wei@trendmicro.com.cn> > > Fix to return -ENOMEM in the kmalloc() and d_make_root() error handling > case instead of 0, as done elsewhere in those functions. > > Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> > --- > fs/ubifs/super.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c > index f21acf0..673b4bc 100644 > --- a/fs/ubifs/super.c > +++ b/fs/ubifs/super.c > @@ -1629,8 +1629,10 @@ static int ubifs_remount_rw(struct ubifs_info *c) > } > > c->write_reserve_buf = kmalloc(COMPRESSED_DATA_NODE_BUF_SZ, GFP_KERNEL); > - if (!c->write_reserve_buf) > + if (!c->write_reserve_buf) { > + err = -ENOMEM; > goto out; > + } > > err = ubifs_lpt_init(c, 0, 1); > if (err) > @@ -2063,8 +2065,10 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent) > } > > sb->s_root = d_make_root(root); > - if (!sb->s_root) > + if (!sb->s_root) { > + err = -ENOMEM; > goto out_umount; > + } > > mutex_unlock(&c->umount_mutex); > return 0; > >
On Wed, 2013-10-02 at 12:59 -0700, Brian Norris wrote: > Bump, Artem? I'm cleaning out my old email, and this patch looks > obviously correct. Picked to linux-ubifs.git, thanks!
diff --git a/fs/ubifs/super.c b/fs/ubifs/super.c index f21acf0..673b4bc 100644 --- a/fs/ubifs/super.c +++ b/fs/ubifs/super.c @@ -1629,8 +1629,10 @@ static int ubifs_remount_rw(struct ubifs_info *c) } c->write_reserve_buf = kmalloc(COMPRESSED_DATA_NODE_BUF_SZ, GFP_KERNEL); - if (!c->write_reserve_buf) + if (!c->write_reserve_buf) { + err = -ENOMEM; goto out; + } err = ubifs_lpt_init(c, 0, 1); if (err) @@ -2063,8 +2065,10 @@ static int ubifs_fill_super(struct super_block *sb, void *data, int silent) } sb->s_root = d_make_root(root); - if (!sb->s_root) + if (!sb->s_root) { + err = -ENOMEM; goto out_umount; + } mutex_unlock(&c->umount_mutex); return 0;