diff --git a/[refs] b/[refs] index 2ca882e9644d..d23dc75db81c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87124e581bfeaa5864662a435b6ee2a19e91b905 +refs/heads/master: 26caee5bc643b318fa2e9bd4f66dace1755ec413 diff --git a/trunk/fs/gfs2/glock.c b/trunk/fs/gfs2/glock.c index 6a3eeba102f9..6b6ae4537340 100644 --- a/trunk/fs/gfs2/glock.c +++ b/trunk/fs/gfs2/glock.c @@ -697,8 +697,9 @@ static void handle_callback(struct gfs2_glock *gl, unsigned int state, int remot } return; } - } else if (gl->gl_demote_state != LM_ST_UNLOCKED) { - gl->gl_demote_state = state; + } else if (gl->gl_demote_state != LM_ST_UNLOCKED && + gl->gl_demote_state != state) { + gl->gl_demote_state = LM_ST_UNLOCKED; } spin_unlock(&gl->gl_spin); }