windows-merge-status-20070206
authorJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 6 Feb 2007 16:46:09 +0000 (16:46 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Tue, 6 Feb 2007 16:46:09 +0000 (16:46 +0000)
when merging status for store data ops, use the fileHashTable to reduce
the number of buffers we must examine

src/WINNT/afsd/cm_scache.c

index ba49c49..c643fc4 100644 (file)
@@ -1414,16 +1414,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;
        }
 
     }