diff options
author | Bob Peterson <rpeterso@redhat.com> | 2012-01-06 16:48:50 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2012-01-11 04:23:26 -0500 |
commit | 49528b4e479195e5db4fe51fcd5ddd97901efc16 (patch) | |
tree | 3e27260f25133fbaf7b8d95faa9b73016eac1b13 /fs/gfs2/rgrp.c | |
parent | e0c2a9aa1e68455dc3439e95d85cabcaff073666 (diff) |
GFS2: Fix a use-after-free that coverity spotted
In function gfs2_inplace_release it was trying to unlock a gfs2_holder
structure associated with a reservation, after said reservation was
freed. The problem is that the statements have the wrong order.
This patch corrects the order so that the reservation is freed after
the gfs2_holder is unlocked.
Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/rgrp.c')
-rw-r--r-- | fs/gfs2/rgrp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 22234627f684..981bfa32121a 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c | |||
@@ -1108,9 +1108,9 @@ void gfs2_inplace_release(struct gfs2_inode *ip) | |||
1108 | { | 1108 | { |
1109 | struct gfs2_blkreserv *rs = ip->i_res; | 1109 | struct gfs2_blkreserv *rs = ip->i_res; |
1110 | 1110 | ||
1111 | gfs2_blkrsv_put(ip); | ||
1112 | if (rs->rs_rgd_gh.gh_gl) | 1111 | if (rs->rs_rgd_gh.gh_gl) |
1113 | gfs2_glock_dq_uninit(&rs->rs_rgd_gh); | 1112 | gfs2_glock_dq_uninit(&rs->rs_rgd_gh); |
1113 | gfs2_blkrsv_put(ip); | ||
1114 | } | 1114 | } |
1115 | 1115 | ||
1116 | /** | 1116 | /** |