aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/glock.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/gfs2/glock.c')
-rw-r--r--fs/gfs2/glock.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
index 7f362d0c3f7a..0381d4cc4146 100644
--- a/fs/gfs2/glock.c
+++ b/fs/gfs2/glock.c
@@ -1965,19 +1965,13 @@ static int examine_bucket(glock_examiner examiner, struct gfs2_sbd *sdp,
1965static void scan_glock(struct gfs2_glock *gl) 1965static void scan_glock(struct gfs2_glock *gl)
1966{ 1966{
1967 if (gfs2_glmutex_trylock(gl)) { 1967 if (gfs2_glmutex_trylock(gl)) {
1968 if (gl->gl_ops == &gfs2_inode_glops) { 1968 if (gl->gl_ops == &gfs2_inode_glops)
1969 struct gfs2_inode *ip = gl->gl_object; 1969 goto out;
1970 if (ip == NULL) {
1971 struct gfs2_sbd *sdp = gl->gl_sbd;
1972 gfs2_assert_withdraw(sdp, gl->gl_state == LM_ST_UNLOCKED);
1973 goto out_schedule;
1974 }
1975 }
1976 if (queue_empty(gl, &gl->gl_holders) && 1970 if (queue_empty(gl, &gl->gl_holders) &&
1977 gl->gl_state != LM_ST_UNLOCKED && 1971 gl->gl_state != LM_ST_UNLOCKED &&
1978 demote_ok(gl)) 1972 demote_ok(gl))
1979 goto out_schedule; 1973 goto out_schedule;
1980 1974out:
1981 gfs2_glmutex_unlock(gl); 1975 gfs2_glmutex_unlock(gl);
1982 } 1976 }
1983 1977