From: Jeffrey Altman Date: Tue, 6 Feb 2007 16:47:33 +0000 (+0000) Subject: DEVEL15-windows-merge-status-20070206 X-Git-Tag: openafs-devel-1_5_15~38 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=504894ea5be802ab7f7247134aad442824fe2c4d;p=packages%2Fo%2Fopenafs.git DEVEL15-windows-merge-status-20070206 when merging status for store data ops, use the fileHashTable to reduce the number of buffers we must examine (cherry picked from commit 55653d5dd00665c80397ab3c397063a1e636afea) --- diff --git a/src/WINNT/afsd/cm_scache.c b/src/WINNT/afsd/cm_scache.c index 09a5c83e8..c6c55973a 100644 --- a/src/WINNT/afsd/cm_scache.c +++ b/src/WINNT/afsd/cm_scache.c @@ -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; } }