diff --git a/[refs] b/[refs] index 109487a56c9b..edca55fe107e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1946f70ab5e4eb8b54a8eaaedba2293a3750ab7e +refs/heads/master: a51b56fff3f04fc5aa66b21a2a6d693ee9862d66 diff --git a/trunk/fs/gfs2/glock.c b/trunk/fs/gfs2/glock.c index fdb796c4f940..827136ee794c 100644 --- a/trunk/fs/gfs2/glock.c +++ b/trunk/fs/gfs2/glock.c @@ -1314,6 +1314,10 @@ static int gfs2_shrink_glock_memory(int nr, gfp_t gfp_mask) list_del_init(&gl->gl_lru); atomic_dec(&lru_count); + /* Check if glock is about to be freed */ + if (atomic_read(&gl->gl_ref) == 0) + continue; + /* Test for being demotable */ if (!test_and_set_bit(GLF_LOCK, &gl->gl_flags)) { gfs2_glock_hold(gl);