Commit cd0ed19f authored by Andrew Price's avatar Andrew Price Committed by Steven Whitehouse

GFS2: Fix possible null pointer deref in gfs2_rs_alloc

Despite the return value from kmem_cache_zalloc() being checked, the
error wasn't being returned until after a possible null pointer
dereference. This patch returns the error immediately, allowing the
removal of the error variable.
Signed-off-by: default avatarAndrew Price <anprice@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent aaaf68c5
...@@ -553,7 +553,6 @@ void gfs2_free_clones(struct gfs2_rgrpd *rgd) ...@@ -553,7 +553,6 @@ void gfs2_free_clones(struct gfs2_rgrpd *rgd)
*/ */
int gfs2_rs_alloc(struct gfs2_inode *ip) int gfs2_rs_alloc(struct gfs2_inode *ip)
{ {
int error = 0;
struct gfs2_blkreserv *res; struct gfs2_blkreserv *res;
if (ip->i_res) if (ip->i_res)
...@@ -561,7 +560,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip) ...@@ -561,7 +560,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip)
res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS); res = kmem_cache_zalloc(gfs2_rsrv_cachep, GFP_NOFS);
if (!res) if (!res)
error = -ENOMEM; return -ENOMEM;
RB_CLEAR_NODE(&res->rs_node); RB_CLEAR_NODE(&res->rs_node);
...@@ -571,7 +570,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip) ...@@ -571,7 +570,7 @@ int gfs2_rs_alloc(struct gfs2_inode *ip)
else else
ip->i_res = res; ip->i_res = res;
up_write(&ip->i_rw_mutex); up_write(&ip->i_rw_mutex);
return error; return 0;
} }
static void dump_rs(struct seq_file *seq, const struct gfs2_blkreserv *rs) static void dump_rs(struct seq_file *seq, const struct gfs2_blkreserv *rs)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment