]> git.michaelhowe.org Git - packages/o/openafs.git/commit
STABLE14-windows-buf-waiting-20050605
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 5 Jun 2005 07:45:31 +0000 (07:45 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sun, 5 Jun 2005 07:45:31 +0000 (07:45 +0000)
commitbb562cedfb53eb510d00c4cb21cc40f82986df23
tree8db6e1a5bed9a06cf55f42aced94794842c28669
parent6730941098ce73b8f1750dfaa0ae0e00ab1a241b
STABLE14-windows-buf-waiting-20050605

The function cm_SyncOp() can cause threads to wait either because there
is a state conflict on the current use of the cm_scache_t object or
a state conflict on the cm_buf_t object.  Waiting is always performed
on the cm_scache_t object.  However, if the conflict was with the cm_buf_t
object there was no method for waking up the thread when the conflict is
cleared.  Now all of the cm_buf_t waiting functions also take a cm_scache_t
and waiting threads are woken if necessary.

cm_scache_t and cm_buf_t objects now have waitCount and waitRequest fields.
The WAITING flag is now cleared by the waking thread who sets waitCount to
zero.

Many improvements to trace logging for these issues.

(cherry picked from commit dfd34687f29ea2c20c5c0438ab4dba11e077f889)
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_buf.h
src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_conn.c
src/WINNT/afsd/cm_conn.h
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_scache.c
src/WINNT/afsd/cm_scache.h
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/smb.c