diff options
author | Olof Johansson <olof@lixom.net> | 2012-03-07 14:52:43 -0800 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-03-07 14:53:14 -0800 |
commit | 591e7afd2e686394912d65a6faeb933b76b26b5d (patch) | |
tree | 5e992381e6d9456d6293d16ad1c2ed36efcb7bd3 /fs/gfs2/rgrp.c | |
parent | ff0ea1ee058e3906502452eba60fd220ece4401d (diff) | |
parent | c9f46a850a07dcf45ee195b958593fae1b78c221 (diff) |
Merge branch 'maintainers' of git://gitorious.org/linux-davinci/linux-davinci into next/maintainers
* 'maintainers' of git://gitorious.org/linux-davinci/linux-davinci: (2 commits)
MAINTAINERS: add TI DaVinci git tree information
MAINTAINERS: mark TI DaVinci list as "moderated"
(also included an update to 3.3-rc6)
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'fs/gfs2/rgrp.c')
-rw-r--r-- | fs/gfs2/rgrp.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 981bfa32121..49ada95209d 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c @@ -683,16 +683,21 @@ int gfs2_rindex_update(struct gfs2_sbd *sdp) struct gfs2_glock *gl = ip->i_gl; struct gfs2_holder ri_gh; int error = 0; + int unlock_required = 0; /* Read new copy from disk if we don't have the latest */ if (!sdp->sd_rindex_uptodate) { mutex_lock(&sdp->sd_rindex_mutex); - error = gfs2_glock_nq_init(gl, LM_ST_SHARED, 0, &ri_gh); - if (error) - return error; + if (!gfs2_glock_is_locked_by_me(gl)) { + error = gfs2_glock_nq_init(gl, LM_ST_SHARED, 0, &ri_gh); + if (error) + return error; + unlock_required = 1; + } if (!sdp->sd_rindex_uptodate) error = gfs2_ri_update(ip); - gfs2_glock_dq_uninit(&ri_gh); + if (unlock_required) + gfs2_glock_dq_uninit(&ri_gh); mutex_unlock(&sdp->sd_rindex_mutex); } |