Messages in this thread | | | Subject | Re: [Cluster-devel] [PATCH] gfs2: add error handling for kmem_cache_zalloc | From | Steven Whitehouse <> | Date | Tue, 12 Jun 2018 13:18:44 +0100 |
| |
Hi,
On 12/06/18 08:24, cgxu519@gmx.com wrote: >> 在 2018年6月12日,上午11:38,Zhouyang Jia <jiazhouyang09@gmail.com> 写道: >> >> When kmem_cache_zalloc fails, the lack of error-handling code may >> cause unexpected results. >> >> This patch adds error-handling code after calling kmem_cache_zalloc. > Should not fail on this case. > > Thanks, > Chengguang. Indeed. It is one of the few GFP_NOFAIL allocations left in GFS2. It would be good to figure out how to remove the last few of these allocations, but simply adding a check for a NULL return is not the right solution here anyway. I would also add that if this problem was easier then I'm sure we'd have solved it before - the right answer is not very obvious in this case,
Steve.
> >> Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com> >> --- >> fs/gfs2/trans.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c >> index 064c9a0..da81eb4 100644 >> --- a/fs/gfs2/trans.c >> +++ b/fs/gfs2/trans.c >> @@ -130,6 +130,9 @@ static struct gfs2_bufdata *gfs2_alloc_bufdata(struct gfs2_glock *gl, >> struct gfs2_bufdata *bd; >> >> bd = kmem_cache_zalloc(gfs2_bufdata_cachep, GFP_NOFS | __GFP_NOFAIL); >> + if (!bd) >> + return NULL; >> + >> bd->bd_bh = bh; >> bd->bd_gl = gl; >> bd->bd_ops = lops; >> -- >> 2.7.4 >> >
| |