]> git.michaelhowe.org Git - packages/o/openafs.git/commit
STABLE14-windows-head-tail-queue-removal-20060525
authorJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 25 May 2006 18:40:59 +0000 (18:40 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 25 May 2006 18:40:59 +0000 (18:40 +0000)
commita618bab24caa33c835cac6c42dac97235647f809
tree1e103bbd15e7169411f9ea5c9c02edfaa09a7236
parent4ced6b5f3efdce5fe934913b4c0f942356292031
STABLE14-windows-head-tail-queue-removal-20060525

while investigating the cause of the delayed write errors it was observed
that all of the sleep queues are LIFO.  This has the side effect of
encouraging starvation.  Changing the queues to FIFOs revealed a serious
problem affecting the use of all queues which use both head and tail
pointers.  The removal function osi_QRemove does not take a tail pointer
and therefore the pointer is always left hanging.  If the number of elements
ever drops to zero the queue becomes corrupted.

Added osi_QRemoveHT to be used whenever head and tail pointers are used.
Updated all callers in afsd.

====================
This delta was composed from multiple commits as part of the CVS->Git migration.
The checkin message with each commit was inconsistent.
The following are the additional commit messages.
====================

fix typo caused by pullup failure

(cherry picked from commit c1e79275079cfa68d73cc3a008c3fb3b201f1068)
src/WINNT/afsd/cm_aclent.c
src/WINNT/afsd/cm_scache.c
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/client_osi/libosi.def
src/WINNT/client_osi/osiqueue.c
src/WINNT/client_osi/osiqueue.h
src/WINNT/client_osi/osisleep.c