]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DEVEL15-windows-multi-fix-20061002
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 3 Oct 2006 04:23:21 +0000 (04:23 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 3 Oct 2006 04:23:21 +0000 (04:23 +0000)
commit72aeefaf2384fcb1dd4ec550dfd344de1af0ab10
tree248e8e3858c81a9067d87bc23d0fa06b5ee04dbf
parente6b68955bd0b28ef7d49c9d9db7cbf42befc2f96
DEVEL15-windows-multi-fix-20061002

Fix the following problems:

it is possible for a file to be created, buffers to become dirty from
writes, the file to be deleted, the stat cache entry to be reused, and
the dirty buffers to remain dirty until the end of time.

stat cache entry starvation can occur because of large numbers of dirty
buffers which take too long to be written to the file server.  The
thread that writes dirty buffers in background writes/checks a small
number of buffers, SQRT(buf-count), and then sleeps for 5 seconds.
Writing all of the dirty buffers via this algorithm produces untimely
results.

threads can end up waiting for a callback on the same stat cache entry
even though there are no threads actually attempting to perform the
FetchStatus.

And:

Fix prototypes

Optimize cm_GetNewSCache to reuse scache entries for deleted files
and entries not in the hashtable before allocating a new one.  This
keeps the entries in the hashtable to a minimum and thereby improving
performance for all other operations which must lookup a scache entry
by FID.

Add support for Sequential and Random Access flags

(cherry picked from commit 8da04000ec70e7eebe8bb18d317bb6b348b91449)
16 files changed:
src/WINNT/afsd/cm_access.c
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_buf.h
src/WINNT/afsd/cm_callback.c
src/WINNT/afsd/cm_daemon.c
src/WINNT/afsd/cm_daemon.h
src/WINNT/afsd/cm_dcache.c
src/WINNT/afsd/cm_dcache.h
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_scache.c
src/WINNT/afsd/cm_scache.h
src/WINNT/afsd/cm_vnodeops.c
src/WINNT/afsd/rawops.c
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb.h
src/WINNT/afsd/smb3.c