]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DEVEL15-windows-local-directory-updates-20070802
authorAsanka Herath <asanka@secure-endpoints.com>
Thu, 2 Aug 2007 21:53:51 +0000 (21:53 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Thu, 2 Aug 2007 21:53:51 +0000 (21:53 +0000)
commit5c8662827cf9acde9a9117ddc88d50cc0ff253ae
treeaf1e8394f16ee148ec9fb55e740806e3c7f3e3e1
parent9ecb8060b0376057fcbf32f96f7d491ab425617c
DEVEL15-windows-local-directory-updates-20070802

The windows cache manager has suffered from poor performance as a result
of Create, Rename, and Delete operations because they invalidate the
contents of the directory pages in the cache thereby forcing them to be
reloaded from the file server.   As the directory size increases, the clock
time necessary to perform the reload increases.

This delta adds support for parsing and updating the AFS3 directory buffers
to cm_dir.c.  It then uses that functionality to perform local updates to
the directory buffers whenever the following conditions are met:

 1. the data version on the directory as a result of the change
    was incremented by one.

 2. all of the directory buffers required for the update are in
    the cache.

If these conditions are not met, the directory is reloaded from the file
server.

(cherry picked from commit c4047f6cb52927890329b09669b1a2686ace6059)
src/WINNT/afsd/cm_buf.c
src/WINNT/afsd/cm_buf.h
src/WINNT/afsd/cm_dir.c
src/WINNT/afsd/cm_dir.h
src/WINNT/afsd/cm_scache.c
src/WINNT/afsd/cm_vnodeops.c