]> git.michaelhowe.org Git - packages/o/openafs.git/commit
rx: Correctly test for end of call queue
authorMarc Dionne <marc.c.dionne@gmail.com>
Wed, 18 Jan 2012 01:19:54 +0000 (20:19 -0500)
committerDerrick Brashear <shadow@dementix.org>
Mon, 23 Jan 2012 15:26:04 +0000 (07:26 -0800)
commit339438c8473110bebdd31b23706e2e387560723f
tree84fd271e48fef5fcb7f58ee54d6848e41f0fac13
parent39f051191189857c79b1f4c23eb509ce94d6271e
rx: Correctly test for end of call queue

The intention of this condition is to check if the current call
being considered is the last one on the queue, but the test is
incorrect.  A null next pointer indicates a removed item, not
the end of the queue.

Use the queue_IsLast macro instead to correctly determine that
this is the last item in the queue and that a call has to be
selected, either the current one or a previously seen good choice.

This can cause calls to get permanently stuck in the call queue
and never get assigned to a thread, even when all threads are
idle.

Reviewed-on: http://gerrit.openafs.org/6564
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Jeffrey Altman <jaltman@secure-endpoints.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
(cherry picked from commit 6ad3d646e62801cb81a3c9efeac320daa44936e1)

Change-Id: Ic9d0ff51c79115960ebb4634fc35a5e9da21c380
Reviewed-on: http://gerrit.openafs.org/6570
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementix.org>
src/rx/rx.c