]> git.michaelhowe.org Git - packages/o/openafs.git/commit
DEVEL15-windows-afsd-btree-20090228
authorJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 28 Feb 2009 15:41:44 +0000 (15:41 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Sat, 28 Feb 2009 15:41:44 +0000 (15:41 +0000)
commit1453e1ae13e7043541e1f4e9145f556520534ec1
tree64d824cd7672b52529d3572193fdc93bc7772c87
parent5b1baa6f8b88435fc7e516c63a2b99a1c1fe7327
DEVEL15-windows-afsd-btree-20090228

LICENSE MIT

Change how BPlusDir enumerations behave with regards to bulk stat
operations.  If the number of entries in the enumeration is larger
than the number of cm_scache objects, then using the previous model
of cm_BPlusDirEnumBulkStat being called for the entire enumeration
list results in the early objects being recycled and the status
info discarded before the caller of cm_BPlusDirNextEnumEntry()
receives the name.

The revised model triggers bulk stat operations from within
NextEnumEntry() as objects requiring status fetching are about
to be returned to the caller.  This reduces the thrashing of the
stat cache.

We should consider adding a flag field to cm_BPlusDirEnumerate()
or cm_BPlusDirNextEnumEntry() to permit enumeration without
status fetching.

(cherry picked from commit a32971251670acc7944dcd4b1eade1ab161e587f)
src/WINNT/afsd/cm_btree.c
src/WINNT/afsd/cm_btree.h