GFS2: Don't use a try lock when promoting to a higher mode
authorSteven Whitehouse <swhiteho@redhat.com>
Thu, 5 May 2011 11:36:38 +0000 (12:36 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Thu, 5 May 2011 11:36:38 +0000 (12:36 +0100)
Previously we marked all locks being promoted to a higher mode
with the try flag to avoid any potential deadlocks issues. The
DLM is able to detect these and report them in way that GFS2 can
deal with them correctly. So we can just request the required mode
and wait for a response without needing to perform this check.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/glock.c

index eed4b6855614019b90bb514f4f28dfe38b8c6a0d..ee2178d661f52c1567d841e397e3de9b5f0dd769 100644 (file)
@@ -543,11 +543,6 @@ __acquires(&gl->gl_spin)
        clear_bit(GLF_INVALIDATE_IN_PROGRESS, &gl->gl_flags);
 
        gfs2_glock_hold(gl);
-       if (target != LM_ST_UNLOCKED && (gl->gl_state == LM_ST_SHARED ||
-           gl->gl_state == LM_ST_DEFERRED) &&
-           !(lck_flags & (LM_FLAG_TRY | LM_FLAG_TRY_1CB)))
-               lck_flags |= LM_FLAG_TRY_1CB;
-
        if (sdp->sd_lockstruct.ls_ops->lm_lock) {
                /* lock_dlm */
                ret = sdp->sd_lockstruct.ls_ops->lm_lock(gl, target, lck_flags);