diff options
author | Bob Peterson <rpeterso@redhat.com> | 2012-02-29 15:15:14 -0500 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2012-03-01 04:25:21 -0500 |
commit | a08fd280b58836c910a4af10eee2066e358d16db (patch) | |
tree | bc3c614014490eaad0c1be3abb0e3c0cf9fada5d /fs | |
parent | 08728f2d8b0ebf01618d3d63e69966f7d43859b9 (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.c | 3 |
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); |
709 | out_unlock: | ||
709 | mutex_unlock(&sdp->sd_rindex_mutex); | 710 | mutex_unlock(&sdp->sd_rindex_mutex); |
710 | } | 711 | } |
711 | 712 | ||