diff options
Diffstat (limited to 'fs/gfs2/glock.c')
-rw-r--r-- | fs/gfs2/glock.c | 12 |
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, | |||
1965 | static void scan_glock(struct gfs2_glock *gl) | 1965 | static 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 | 1974 | out: | |
1981 | gfs2_glmutex_unlock(gl); | 1975 | gfs2_glmutex_unlock(gl); |
1982 | } | 1976 | } |
1983 | 1977 | ||