From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Mon, 30 Jul 2007 10:32:15 +0100 Subject: [Cluster-devel] [PATCH] [GFS2] Clean up run_queue() In-Reply-To: <1185787946183-git-send-email-swhiteho@redhat.com> References: <11857879381186-git-send-email-swhiteho@redhat.com> <1185787946183-git-send-email-swhiteho@redhat.com> Message-ID: <11857879472203-git-send-email-swhiteho@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit A further clean up to make the logic a bit more obvious and remove a local variable which is no longer required. Signed-off-by: Steven Whitehouse diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 65d6eba..79d61ff 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -564,24 +564,19 @@ static int rq_demote(struct gfs2_glock *gl) */ static void run_queue(struct gfs2_glock *gl) { - int blocked; - - for (;;) { - blocked = 1; - if (test_bit(GLF_LOCK, &gl->gl_flags)) - break; - + while(test_bit(GLF_LOCK, &gl->gl_flags) == 0) { if (!list_empty(&gl->gl_waiters1)) { rq_mutex(gl); break; - } else if (test_bit(GLF_DEMOTE, &gl->gl_flags)) { - blocked = rq_demote(gl); + } + if (test_bit(GLF_DEMOTE, &gl->gl_flags)) { + if (rq_demote(gl) == 0) + continue; } else if (!list_empty(&gl->gl_waiters3)) { - blocked = rq_promote(gl); + if (rq_promote(gl) == 0) + continue; } - - if (blocked) - break; + break; } } -- 1.5.1.2