]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
DEVEL15-windows-merge-status-20070206
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 6 Feb 2007 16:47:33 +0000 (16:47 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 6 Feb 2007 16:47:33 +0000 (16:47 +0000)
when merging status for store data ops, use the fileHashTable to reduce
the number of buffers we must examine

(cherry picked from commit 55653d5dd00665c80397ab3c397063a1e636afea)

src/WINNT/afsd/cm_scache.c

index 09a5c83e8256a3252f5839f687a3c3d5a9f4f947..c6c55973a554ff3c5ff23fb1043f89a538e6cb1b 100644 (file)
@@ -1416,16 +1416,13 @@ void cm_MergeStatus(cm_scache_t *scp, AFSFetchStatus *statusp, AFSVolSync *volp,
 
     if ((flags & CM_MERGEFLAG_STOREDATA) &&
        statusp->DataVersion - scp->dataVersion == 1) {
-       afs_uint32 i;
        cm_buf_t *bp;
 
-       for (i = 0; i < cm_data.buf_hashSize; i++)
+       for (bp = cm_data.buf_fileHashTablepp[BUF_FILEHASH(&scp->fid)]; bp; bp=bp->fileHashp)
        {
-           for(bp = cm_data.buf_hashTablepp[i]; bp; bp=bp->hashp) {
-               if (cm_FidCmp(&scp->fid, &bp->fid) == 0 && 
-                   bp->dataVersion == scp->dataVersion)
-                   bp->dataVersion = statusp->DataVersion;
-           }
+           if (cm_FidCmp(&scp->fid, &bp->fid) == 0 && 
+               bp->dataVersion == scp->dataVersion)
+               bp->dataVersion = statusp->DataVersion;
        }
 
     }