GFS2: Unlock rindex mutex on glock error
authorBob Peterson <rpeterso@redhat.com>
Wed, 29 Feb 2012 20:15:14 +0000 (15:15 -0500)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 1 Mar 2012 09:25:21 +0000 (09:25 +0000)
This patch fixes an error path in function gfs2_rindex_update
that leaves the rindex mutex held.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/rgrp.c

index 1446b4e..e09370e 100644 (file)
@@ -699,13 +699,14 @@ int gfs2_rindex_update(struct gfs2_sbd *sdp)
                if (!gfs2_glock_is_locked_by_me(gl)) {
                        error = gfs2_glock_nq_init(gl, LM_ST_SHARED, 0, &ri_gh);
                        if (error)
-                               return error;
+                               goto out_unlock;
                        unlock_required = 1;
                }
                if (!sdp->sd_rindex_uptodate)
                        error = gfs2_ri_update(ip);
                if (unlock_required)
                        gfs2_glock_dq_uninit(&ri_gh);
+out_unlock:
                mutex_unlock(&sdp->sd_rindex_mutex);
        }