On Fri, 2012-01-06 at 16:48 -0500, Bob Peterson wrote:
> This patch fixes a use-after-free bug, spotted by coverity, which
> was recently introduced.
> Bob Peterson
> Red Hat File Systems
> Signed-off-by: Bob Peterson <email@example.com>
> Author: Bob Peterson <firstname.lastname@example.org>
> Date: Fri Jan 6 16:42:27 2012 -0600
> 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.
> diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
> index 2223462..981bfa3 100644
> --- a/fs/gfs2/rgrp.c
> +++ b/fs/gfs2/rgrp.c
> @@ -1108,9 +1108,9 @@ void gfs2_inplace_release(struct gfs2_inode *ip)
> struct gfs2_blkreserv *rs = ip->i_res;
> - gfs2_blkrsv_put(ip);
> if (rs->rs_rgd_gh.gh_gl)
> + gfs2_blkrsv_put(ip);