summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/gfs2/super.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index aadb83e38c17..92a3b6ddafdc 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -1503,10 +1503,13 @@ static void gfs2_evict_inode(struct inode *inode)
!test_bit(SDF_KILL, &sdp->sd_flags)) {
struct gfs2_glock *io_gl = ip->i_iopen_gh.gh_gl;
- gfs2_glock_hold(io_gl);
- if (!gfs2_queue_verify_delete(io_gl, true))
- gfs2_glock_put(io_gl);
- goto out;
+ if (io_gl) {
+ gfs2_glock_hold(io_gl);
+ if (!gfs2_queue_verify_delete(io_gl, true))
+ gfs2_glock_put(io_gl);
+ goto out;
+ }
+ behavior = EVICT_SHOULD_DELETE;
}
if (behavior == EVICT_SHOULD_DELETE)
ret = evict_unlinked_inode(inode);