aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2012-02-29 15:15:14 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2012-03-01 04:25:21 -0500
commita08fd280b58836c910a4af10eee2066e358d16db (patch)
treebc3c614014490eaad0c1be3abb0e3c0cf9fada5d /fs
parent08728f2d8b0ebf01618d3d63e69966f7d43859b9 (diff)
GFS2: Unlock rindex mutex on glock error
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>
Diffstat (limited to 'fs')
-rw-r--r--fs/gfs2/rgrp.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 1446b4e0ac73..e09370eec590 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -699,13 +699,14 @@ int gfs2_rindex_update(struct gfs2_sbd *sdp)
699 if (!gfs2_glock_is_locked_by_me(gl)) { 699 if (!gfs2_glock_is_locked_by_me(gl)) {
700 error = gfs2_glock_nq_init(gl, LM_ST_SHARED, 0, &ri_gh); 700 error = gfs2_glock_nq_init(gl, LM_ST_SHARED, 0, &ri_gh);
701 if (error) 701 if (error)
702 return error; 702 goto out_unlock;
703 unlock_required = 1; 703 unlock_required = 1;
704 } 704 }
705 if (!sdp->sd_rindex_uptodate) 705 if (!sdp->sd_rindex_uptodate)
706 error = gfs2_ri_update(ip); 706 error = gfs2_ri_update(ip);
707 if (unlock_required) 707 if (unlock_required)
708 gfs2_glock_dq_uninit(&ri_gh); 708 gfs2_glock_dq_uninit(&ri_gh);
709out_unlock:
709 mutex_unlock(&sdp->sd_rindex_mutex); 710 mutex_unlock(&sdp->sd_rindex_mutex);
710 } 711 }
711 712